И не будем забывать, что аксессоры дают вам гибкость при работе с несколькими потоками.
Вы можете использовать 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 в качестве имени функции обратного вызова
blockquote> [1111 ] Таким образом, вы можете объединить больше массивов - просто не забудьте добавить правильный ключ в$keys
Вы можете использовать обычный цикл 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