Объединение ключей сохранения многомерного массива

У меня есть три массива следующим образом:

Array
(
[1000] => Item 0
[1001] => Item 1
[1002] => Item 2
)

Array
(

[1000] => £35.00
[1001] => £60.00
[1002] => £24.00
)
Array
(
[1000] => 1
[1001] => 2
[1002] => 3
)

Мне нужно объединить эти три массива, сохранив ключи следующим образом:

Array
(
[1000] => Array
(
[0] => Item 0
[1] => £35.00
[2] => 1
)
[1001] => Array
(
[0] => Item 1
[1] => £60.00
[2] => 2
)
[1002] => Array
(
[0] => Item 2
[1] => £24.00
[2] => 3
)
)

array_map(null, array1, array2, array3) решает это до некоторого уровня, но не сохраняет ключи. Как это можно сделать?

1

Решение

Вы можете обернуть массив array_map вместе с array_keys () против исходного массива в array_combine ()

$array1 = array(
1000 => 'Item 0',
1001 => 'Item 1',
1002 => 'Item 2',
);
$array2 = array(
1000 => '£35.00',
1001 => '£60.00',
1002 => '£24.00',
);
$array3 = array(
1000 => 1,
1001 => 2,
1002 => 3,
);

$result = array_combine(
array_keys($array1),
array_map(null, $array1, $array2, $array3)
);
var_dump($result);
0

Другие решения

Попробуйте этот код, сохраните ключи одного массива в другом массиве и заполните ключи после объединенного массива

$array1_keys = array_keys($array1);
$mapped_array = array_map(null, $array1, $array2, $array3);
//now assign original keys
$merged_final_array = array_fill_keys($array1_keys, $mapped_array);

0

Я надеюсь, что этот код поможет вам:

$one =Array(    "1000" => "£35.00","1001" => "£60.00","1002" => "£24.00","1003" => "£36.00","1004" => "£80.00","1005" => "£24.00");
$two = array("1000"=>"1","1001"=>"2","1002"=>"3","1003"=>"4","1004"=>"5","1005"=>"6");
$response = array();
foreach(array_keys($one) as $key =>$val)
{
$response[$val] = array(0=>"item ".$key,1=>$one[$val],2=>$two[$val]);
}
echo "<pre>";print_R($response);
0
По вопросам рекламы [email protected]