Как объединить эти два конкретных массива в PHP? - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть этот массив:

$array['apples'][0]['name'] = 'Some apple';
$array['apples'][0]['price'] = 44;

$array['oranges'][0]['name'] = 'Some orange';
$array['oranges'][0]['price'] = 10;

Как мне объединить два массива, чтобы я получил это:

$array[0]['name'] = 'Some apple';
$array[0]['price'] = 44;
$array[1]['name'] = 'Some orange';
$array[1]['price'] = 10;

Ответы [ 3 ]

3 голосов
/ 01 декабря 2009

У меня нет PHP для тестирования, но не просто:

$array2 = $array['apples'];
array_merge($array2, $array['oranges']);

Конечно, теперь оно в $array2, а не $array ...

2 голосов
/ 01 декабря 2009
$second_array = array();

foreach($array as $fruit => $arr){
    foreach($arr as $a){
        $second_array[] = array("name" => $a["name"], "price" => $a["price"]);
    }
}
print_r($second_array);
0 голосов
/ 01 декабря 2009

Похоже, значения $array - это массивы, которые вы хотите объединить. Поскольку для этого требуется динамическое число аргументов, передаваемых в array_merge, единственный известный мне способ добиться этого - через call_user_func_array:

$array = call_user_func_array('array_merge', array_values($array));

Это должно работать с любым количеством фруктов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...