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


PHP Get the first value of all arrays in a 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];

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

假设你使用 php 5.3:

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

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

这是一个单行:

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
)

使用 array_column:

$result = array_column($array, 0);
foreach ($main_array as $inner_array){
  echo $inner_array[0] . "'n";
}
foreach($array as $x) {
   echo $x[0]."'n";
}

我认为您要查找的功能reset()

例如
array_map('reset', $array);

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

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

使用array_walk最简单的方法

        function getFirstElement(&$val){
            $val = $val[0];
        }
        array_walk($data,'getFirstElement');

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

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