PHP获取多维数组中所有数组的第一个值

时间:2012-04-22 21:34:59

标签: php multidimensional-array

这是我的多维数组的一部分:

Array ( 
[0] => Array ( [0] => Height [1] => 40 ) 
[1] => Array ( [0] => Weight [1] => 15 ) 
[2] => Array ( [0] => Ctr_Percent [1] => 15 ) 
) 

仅打印heightweightctr_percent的语法是什么?我的意思并不是像:

echo $array[0][0];
echo $array[1][0];

有没有办法迭代整个多维数组并回显出每个子数组的第一个值?

7 个答案:

答案 0 :(得分:16)

假设你使用php 5.3:

$first_elements = array_map(function($i) {
    return $i[0];
}, $data);

否则,您需要实现回调函数或只使用普通的foreach

答案 1 :(得分:9)

这是一个单行:

array_map('array_shift', $array);

将返回:

Array
(
    [0] => Height
    [1] => Weight
    [2] => Ctr_Percent
)

这是另一个:

array_combine(array_map('array_shift', $temp), array_map('array_pop', $temp))

将返回:

Array
(
    [Height] => 40
    [Weight] => 15
    [Ctr_Percent] => 15
)

答案 2 :(得分:2)

foreach($array as $x) {
   echo $x[0]."\n";
}

答案 3 :(得分:1)

foreach ($main_array as $inner_array){
  echo $inner_array[0] . "\n";
}

答案 4 :(得分:1)

我认为您所寻找的功能是reset(),例如

array_map('reset', $array);

foreach ($array as $subarray)
    echo reset($subarray)."\n";

请注意,即使0不是数组的第一个索引,这仍然有效。例如。 $a = [1=>5,0=>3]; echo reset($a);仍然会echo 5;

答案 5 :(得分:1)

使用array_walk

的最简单方法
        function getFirstElement(&$val){
            $val = $val[0];
        }
        array_walk($data,'getFirstElement');

现在,如果您像print_r($data);那样打印$ data,您将得到如下结果

Array
(
   [0] => Height
   [1] => Weight
   [2] => Ctr_Percent
)

答案 6 :(得分:1)

使用array_column

$result = array_column($array, 0);