PHP Получает первое значение всех массивов в многомерном массиве


Вот раздел моего многомерного массива:

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];

Есть ли способ выполнить итерацию по всему многомерному массиву и вывести первое значение каждого дочернего массива?

Author: Norse, 2012-04-23

5 answers

foreach ($main_array as $inner_array){
  echo $inner_array[0] . "\n";
}
 1
Author: John Conde, 2014-10-19 11:56:22

Предположим, вы используете php 5.3:

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

В противном случае вам нужно реализовать функцию обратного вызова или просто использовать обычную старую foreach

 16
Author: zerkms, 2012-04-22 21:37:27

Вот однострочный текст:

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
)
 8
Author: Shumoapp, 2016-12-06 15:23:26
foreach($array as $x) {
   echo $x[0]."\n";
}
 2
Author: gopi1410, 2012-04-22 21:40:35

Я думаю, что функция, которую вы ищете, это reset(), например

array_map('reset', $array);

Или

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

Обратите внимание, что это работает, даже если 0 не является первым индексом массива. Например, $a = [1=>5,0=>3]; echo reset($a); все равно будет echo 5;.

 1
Author: Christoph, 2016-12-06 15:33:35