#php #arrays #associative-array #array-merge
Вопрос:
У меня есть 2 массива, таких как:
$arr1 = [230] => Array
(
[itemid] => 230
[name] => test1
[category] => toy
[price] => 10.00
)
[240] => Array
(
[itemid] => 240
[name] => test2
[category] => toy
[price] => 8.00
)
[245] => Array
(
[itemid] => 245
[name] => test3
[category] => pen
[price] => 5.00
)
)
$arr2 = [220] => Array
(
[itemid] => 220
[name] => test4
[category] => toy
[price] => 20.00
)
[225] => Array
(
[itemid] => 225
[name] => test5
[category] => battery
[price] => 4.00
)
[248] => Array
(
[itemid] => 248
[name] => test6
[category] => book
[price] => 3.00
)
[236] => Array
(
[itemid] => 236
[name] => test7
[category] => pen
[price] => 2.00
)
)
Мне нужен такой результат, как :
$arr3 = [230] => Array
(
[itemid] => 230
[name] => test1
[category] => toy
[price] => 10.00
)
[240] => Array
(
[itemid] => 240
[name] => test2
[category] => toy
[price] => 8.00
)
[245] => Array
(
[itemid] => 245
[name] => test3
[category] => pen
[price] => 5.00
)
[220] => Array
(
[itemid] => 220
[name] => test4
[category] => toy
[price] => 20.00
)
[225] => Array
(
[itemid] => 225
[name] => test5
[category] => battery
[price] => 4.00
)
[248] => Array
(
[itemid] => 248
[name] => test6
[category] => book
[price] => 3.00
)
[236] => Array
(
[itemid] => 236
[name] => test7
[category] => pen
[price] => 2.00
)
)
Для этого я просто использую array_merge
$arr3= $arr1 $arr2;
Но после этого я получил такой результат, как:
$arr3 = [230] => Array
(
[itemid] => 230
[name] => test1
[category] => toy
[price] => 10.00
)
[240] => Array
(
[itemid] => 240
[name] => test2
[category] => toy
[price] => 8.00
)
[220] => Array
(
[itemid] => 220
[name] => test4
[category] => toy
[price] => 20.00
)
[225] => Array
(
[itemid] => 225
[name] => test5
[category] => battery
[price] => 4.00
)
[248] => Array
(
[itemid] => 248
[name] => test6
[category] => book
[price] => 3.00
)
[245] => Array
(
[itemid] => 245
[name] => test3
[category] => pen
[price] => 5.00
)
[236] => Array
(
[itemid] => 236
[name] => test7
[category] => pen
[price] => 2.00
)
)
Моя проблема заключается в том, что после объединения 2 ассоциативных массивов с разными ключами я смешал первый массив и второй массив, что означает, что мне нужен результат, подобный первым трем элементам массива первого массива, а затем 4 элементам массива второго массива.
Кто-нибудь может мне помочь, пожалуйста, это будет полезно для меня
Комментарии:
1. Я не совсем понимаю, о чем вы спрашиваете. Вам нужен отсортированный массив в конце? если это так:
asort($arr3);
должно сработать.2. php.net/manual/en/function. array-merge.php
3. Просто повторите цикл
$arr2
и добавьте ключи плюс значения, чтобы$arr1
, по-видимому, достичь того, чего вы хотите? Это должно поддерживать порядок массивов.4. Нет. Мне не нужен никакой отсортированный массив. Просто я хочу, чтобы массив был задан в порядке ввода массива.
Ответ №1:
Вы могли бы использовать:
foreach($arr2 as $key => $record) {
$arr1[$key] = $record;
}
Это приведет к порядку, который вы ищете.