0

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

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)
)   
4

1 回答 1

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)
}
*/

?>
于 2017-11-30T02:16:13.427 回答