Взаимодействовать с многомерный массив PHP
Хотел бы знать, как сделать взаимодействие с многомерный массив без использования foreach.
$arr1 = array('id' => 1, 'nome' => 'Joao');
$arr2 = array('id' => 2, 'nome' => 'Maria');
$arrTotal = array($arr1, $arr2);
я Хочу, чтобы получить только те поля код. Поэтому я хочу, чтобы результат следующим образом: [1, 2]
.
Стоило.
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);
Я Думаю, что ваш вопрос не выражает действительно то, что вы пытаетесь сказать.
Так, как вы описываете, просто бы сделал это таким образом:
$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);