【问题标题】:convert more arrays into single array将更多数组转换为单个数组
【发布时间】:2016-11-28 09:24:34
【问题描述】:

将这些数组转换为一个数组

Array ( [0] => 10 ) Array ( [0] => 17 ) Array ( [0] => 17 ) Array ( [0] => 15 )

我想要这样的输出:

Array ( [0] => 10 ,[1] => 17,[2] => 17,[3] => 15)

【问题讨论】:

  • array_merge().go for that
  • 在 foreach 循环中我得到 $x = Array ( [0] => 10 ),每次,17,17,15 值
  • 我将这些转换成数组和使用的array_merge。但它返回相同的数组
  • 第一个输出是循环内的吗?

标签: php


【解决方案1】:
$a=array(10);$b=array(17);$c=array(17);$d=array(15);

print_r(array_merge($a,$b,$c,$d));

//Array([0]=>10 [1]=>17 [2]=>17 [3]=>15)

【讨论】:

    【解决方案2】:
    假设您的主数组包含一些嵌套在其中的子数组,如下所示:
    <?php
        $arrNestedArray = array(
            array(10),
            array(17),
            array(17),
            array(15),
            array("data"=>array("fName"=>"Cosmic", "lName"=>"Joy")),
        );
    
    现在;您想取出子数组中每个元素的所有值并将它们变成主数组的直接元素。您可以使用 array_walk... 来执行此操作,然后构建具有您预期的结构的平面阵列,如下所示:
    <?php
        // CREATE AN EMPTY ARRAY TO HOLD THE FINAL RESULT YOU DESIRED...
        $singleArray    = array();
    
        // THIS IS A SAMPLE OF THE MAIN ARRAY CONTAINING SUB ARRAYS...
        $arrNestedArray = array(
            array(10),
            array(17),
            array(17),
            array(15),
            array("data"=>array("fName"=>"Cosmic", "lName"=>"Joy")),
        );
    
        array_walk($arrNestedArray, function($data, $index) use(&$singleArray) {
            if( is_array($data) ) {
                foreach ($data as $key=>$item) {
                    if(!in_array($item, $singleArray)) {
                        if(is_array($item)) {
                            $singleArray[$key]   = $item;
                        }else{
                            $singleArray[$index] = $item;
                        }
                    }
                }
            }
        });
        var_dump($singleArray);
    
    最后,虽然你可能还想test it out here;上面的 var_dump 会产生如下内容:
        array (size=4)
          0 => int 10
          1 => int 17
          3 => int 15
          'data' => 
            array (size=2)
              'fName' => string 'Cosmic' (length=6)
              'lName' => string 'Joy' (length=3)
    

    【讨论】:

      【解决方案3】:

      array_mergecall_user_func_array 一起使用:

      $a = array(Array ( 0 => 10 ), Array ( 0 => 17 ), Array ( 0 => 17 ), Array ( 0 => 15 ));
      $ra = call_user_func_array('array_merge', $a);
      print_r($ra); // Array ( [0] => 10 [1] => 17 [2] => 17 [3] => 15 ) 
      

      【讨论】:

        猜你喜欢
        • 2011-10-10
        • 1970-01-01
        • 2015-12-24
        • 1970-01-01
        • 2020-05-10
        • 2014-09-09
        • 2015-07-31
        • 1970-01-01
        相关资源
        最近更新 更多