PHP多维数组展平

时间:2017-11-30 00:43:15

标签: php arrays multidimensional-array array-merge array-walk

我有以下输入数组,我想展平数组以评估真或假条件。

array (
'all' => 
   array (
      '0' => 
         array (
            0 => 'true')
      '1' => 
         array (
            0 => 'true')    
      '2' => 
          array (
            0 => 'true')
         ),
  array (
       'any' => 
            array (
                '0' => 
                    array (
                        0 => 'true')
                '1' => 
                    array (
                            0 => 'false')   
))  

我想以下列格式获得输出。

输出数组:

all =>(
    true,
    true,
    true,
    any => (true,
           false)
)   

1 个答案:

答案 0 :(得分:0)

有许多PHP内置函数可用于解决您的问题。

您可以使用 array_values ,如下所示:

$result = array_values($array, 'type');

如果你使用的是PHP 5.5+,你可以使用 array_column(),如下所示:

$result = array_column($array, 'type');

您还可以尝试使用array_flattenarray_map来降低PHP版本。

array_values的示例:

<?php

$aNonFlat = array(
    1,
    2,
    array(
        3,
        4,
        5,
        array(
            6,
            7
        ),
        8,
        9,
    ),
    10,
    11
);

$objTmp = (object) array('aFlat' => array());

array_walk_recursive($aNonFlat, create_function('&$v, $k, &$t', '$t->aFlat[] = $v;'), $objTmp);

var_dump($objTmp->aFlat);

/*
array(11) {
  [0]=> int(1)
  [1]=> int(2)
  [2]=> int(3)
  [3]=> int(4)
  [4]=> int(5)
  [5]=> int(6)
  [6]=> int(7)
  [7]=> int(8)
  [8]=> int(9)
  [9]=> int(10)
  [10]=> int(11)
}
*/

?>