Взаимодействовать с многомерный массив PHP


Хотел бы знать, как сделать взаимодействие с многомерный массив без использования foreach.

$arr1 = array('id' => 1, 'nome' => 'Joao');
$arr2 = array('id' => 2, 'nome' => 'Maria');

$arrTotal = array($arr1, $arr2);

я Хочу, чтобы получить только те поля код. Поэтому я хочу, чтобы результат следующим образом: [1, 2].

Стоило.

 1
php
Author: Matheus Velloso, 2016-01-06

2 answers

, Если вы используете PHP 5.5 или выше, можно воспользоваться функцией array_column.

$result = array_column($total_array, 'id');

И так просто будет иметь ожидаемый результат.

Для версий более ранних, чем 5.5, вы можете создать функцию array_column вы же

if(!function_exists("array_column")) {
    function array_column($array,$column_name) {
       return array_map(function($element) use ($column_name) {
          return $element[$column_name];
       }, $array);
    }
}

, Или же просто использовать array_map

$result = array_map(function($item) {
   return $item['id']; 
}, $arrayTotal);
 2
Author: Marco Aurélio Deleu, 2016-01-06 16:01:09

Я Думаю, что ваш вопрос не выражает действительно то, что вы пытаетесь сказать.
Так, как вы описываете, просто бы сделал это таким образом:

$arr1 = array('id' => 1, 'nome' => 'Joao');
$arr2 = array('id' => 2, 'nome' => 'Maria');

$arrTotal = array($arr1['id'], $arr2['id']);

Тем не менее, может быть, $arr1 и $arr2 являются элементами другого массива, как это:

$map = array(
    array('id' => 1, 'nome' => 'Joao'),
    array('id' => 2, 'nome' => 'Maria'),
    array('id' => 7, 'nome' => 'Pedro'),
);

При такой структуре, ваш вопрос имеет смысл, потому что действительно будет итерации. Без foreach:

$map = array(
    array('id' => 1, 'nome' => 'Joao'),
    array('id' => 2, 'nome' => 'Maria'),
    array('id' => 7, 'nome' => 'Pedro'),
);

$result = array_map(function($a) { return $a['id']; }, $map);
 2
Author: felipsmartins, 2016-01-06 15:55:35