【问题标题】:How to convert multiple array to single array [duplicate]如何将多个数组转换为单个数组[重复]
【发布时间】:2020-06-01 20:35:33
【问题描述】:

很抱歉在这里提出这个愚蠢的问题。我对 PHP 语言很陌生。 我想知道如何转换数组。
我想将此数组转换为单个数组。

转换这个:-

Array ( [0] => user ) 
Array ( [0] => user1 ) 
Array ( [0] => user2 ) 
Array ( [0] => user3 ) 
Array ( [0] => user8 ) 
Array ( [0] => user7 ) 
Array ( [0] => user6 )

转换为:-

Array("user", "user1", "user2", "user3", "user4", "user5", "user6");

【问题讨论】:

标签: php


【解决方案1】:

要将多个数组“合并”为一个,可以使用array_merge()

一个很好的例子是:

$array_1 = array('user'); 
$array_2 = array('user1'); 
$array_3 = array('user2'); 
$combined_array = array_merge($array1,$array_2,$array_3); 
var_dump($combined_array); 

【讨论】:

  • 感谢您的回复。
  • 这是我的荣幸!
【解决方案2】:

应该这样做:

while($row = $result->fetch_array(MYSQLI_NUM)) {
    $users[] = $row[0];
}

【讨论】:

    【解决方案3】:

    除了array_merge 之外的另一种选择,对于任意数量的子数组,您可以使用array_reduce 并构建您的最终数组:

    $inArray = [['user'],['user1'],['user2'],['user3'],['user8'],['user7'],['user6']];
    
    $inArray = array_reduce($inArray, function($arr, $elem){
        $arr[] = $elem[0];
        return $arr;
    });
    

    当然,直接的解决方案是使用array_merge

    $inArray = array_merge(...$inArray);
    

    【讨论】:

      【解决方案4】:

      将所有数组打包或收集到父数组中。 那么在调用array_merge时只需要传入一个数组作为参数即可。 更新:最好使用array_column

      $arr  = [];
      $arr[] = array('user');
      $arr[] = array('user1'); 
      $arr[] = array('user2');
      
      $one_dim_array = array_merge(...$arr);
      
      //or better
      $one_dim_array =  array_column($arr,0);
      
      echo "<pre>".var_export($one_dim_array, true);
      

      结果:

      array (
        0 => 'user',
        1 => 'user1',
        2 => 'user2',
      ) 
      

      自己试试吧:Sandbox

      【讨论】:

        猜你喜欢
        • 2018-10-06
        • 1970-01-01
        • 2014-09-16
        • 2019-03-20
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多