Как объединить два массива в один php?
я немного начинаю с php
этого, и мне было интересно, можно ли объединить два arrays
, более или менее моя идея такова:
$fruits = array("id"=>"1", "name"=>"banana");
$vegetables = array("id"=>"1", "name"=>"cabbage");
foreach($fruits as $fruit)
{
$results = array("id"=>$fruit->id, "description"=>$fruit->name);
}
// $results = array("id"=>" ", "description"=>" ");
return $results;
я хочу знать, могу ли я вернуть эти два array
внутри одного, с этими двумя keys "id
" и " description
", Есть ли способ сделать это? я пробовал array_fill_keys
, но это не сработало. Благодарю.
3 answers
Создает массив и добавляет значения других массивов в конец первого массива:
$results = array();
$results[] = $fruits;
$results[] = $vegetables;
return $results;
Для вашего комментария вам нужно не только объединить массивы в многомерный массив, но и добавить функцию сопоставления для всех элементов этого нового многомерного массива. Вы можете использовать array_map
чтобы сопоставить элементы нового многомерного массива с новыми данными, которые вам нужны.
$results = array();
$results[] = $fruits;
$results[] = $vegetables;
$mapeo = function($elemento) {
return array(
'id' => $elemento['id'],
'description' => $elemento['name']
);
}
return array_map($mapeo, $results);
Функция array_map
он будет делать следующее:
- перебирать элементы
$results
, предоставленные во втором аргументе. - для каждого элемента вы примените функцию
$mapeo
, предоставленную в первом аргументе. - возвращает в результате новое расположение, которое имеет результат применения
$mapeo
к каждому элементу$results
.
Учитывая, что это то, что вы ищете, код может быть сведен к:
$mapeo = function($elemento) {
return array(
'id' => $elemento['id'],
'description' => $elemento['name']
);
}
return array_map($mapeo, array($fruits, $vegetables));
Примечание: я использую лямбды, включенные в PHP с 5.3.0
Посмотрите на функцию array_mege() самого PHP
Пример, который они ставят:
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$resultado = array_merge($array1, $array2);
print_r($resultado);
?>
Результатом примера будет:
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
Использование метода array_merge()
<?php
$fruits = array("id"=>"1", "name"=>"banana");
$vegetables= array("id"=>"1", "name"=>"cabbage");
$result = array_merge($fruits , $vegetables);
print_r($result);
?>
Пример:
, Например, array_merge() http://php.net/manual/en/function.array-merge.php
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
Пример будет иметь выход:
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)