13

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

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

仅打印height,weight和的语法是什么ctr_percent?我并不是说像这样呼应它:

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

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

4

7 回答 7

21

假设您使用 php 5.3:

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

否则你需要实现一个回调函数或者只使用普通的旧的foreach

于 2012-04-22T21:37:27.167 回答
17

这是一个单行:

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
)
于 2016-12-06T15:23:26.490 回答
3

使用array_column

$result = array_column($array, 0);
于 2020-07-24T16:14:04.860 回答
1
foreach ($main_array as $inner_array){
  echo $inner_array[0] . "\n";
}
于 2012-04-22T21:37:34.087 回答
1
foreach($array as $x) {
   echo $x[0]."\n";
}
于 2012-04-22T21:40:35.573 回答
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;

于 2016-12-06T15:33:35.550 回答
1

最简单的方法是使用array_walk

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

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

Array
(
   [0] => Height
   [1] => Weight
   [2] => Ctr_Percent
)
于 2019-07-31T10:01:31.480 回答