Объединить (объединить) 2 массива по ключам и изменить имя ключа в массиве результатов

И не будем забывать, что аксессоры дают вам гибкость при работе с несколькими потоками.

4
задан dWinder 5 March 2019 в 12:24
поделиться

2 ответа

Вы можете использовать array_map ( документ ) и array_combine документ как:

$a1 = ["10100153", "2007", "350", "804082", "WW006", "WHT/NNY/OXGM", "35/38", "804082       WW00635/38", "0,00138857", "Champion 3pk Quarter Socks"];
$a2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

$res = array_map(null, $a1, $a2);
$keys = array("Value", "Number");
$res = array_map(function ($e) use ($keys) {return array_combine($keys, $e);}, $res);

Уведомление об использовании null в array_map. Из документации:

Интересным использованием этой функции является создание массива массивов, который можно легко выполнить, используя NULL в качестве имени функции обратного вызова

[1111 ] Таким образом, вы можете объединить больше массивов - просто не забудьте добавить правильный ключ в $keys

0
ответ дан dWinder 5 March 2019 в 12:24
поделиться

Вы можете использовать обычный цикл foreach для перебора массива значений. Для каждого элемента в массиве значений вы можете получить соответствующий элемент в массиве чисел, используя текущий индекс.

На каждой итерации (каждый цикл вашего массива значений) вы можете добавить ассоциативный массив в результирующий массив (здесь я назвал его $res).

См. Пример ниже:

$values = ["10100153", "2007", "350", "804082", "WW006", "WHT/NNY/OXGM", "35/38", "804082       WW00635/38", "0,00138857", "Champion 3pk Quarter Socks"];
$nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

$res = []; // create empty array to hold associative arrays
foreach($values as $i=>$val) { // loop over your values array, where the index is $i and the value is $val
    $num = $nums[$i]; // get the number at the given index
    $res[$i] = ["Value" => $val, "Number" => $num]; // set the index in the resulting array to hold a newly formed associative array 
}
print_r($res); // print the results
0
ответ дан Nick Parsons 5 March 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: