这是我的多维数组的一部分:
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];
有没有办法迭代整个多维数组并回显出每个子数组的第一个值?
答案 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);