Я хочу перейти от этих массивов:
$array1 = ["x", "y", "z"];
$array2 = ["a","b"];
$array3 = ["1","2","3","4","5","6"];
К этому массиву:
$arrayResult =
array(
array("x" => array("a" => array(1,2,3,4,5,6),
"b" => array(1,2,3,4,5,6)),
"y" => array("a" => array(1,2,3,4,5,6),
"b" => array(1,2,3,4,5,6)),
"z" => array("a" => array(1,2,3,4,5,6),
"b" => array(1,2,3,4,5,6)))
);
Я пытался создать этот комбинированный массив с подходами декартовых произведений, но пока не получил удовлетворительного результата.
Вот еще одно решение без использования цикла:
$array1 = ["x", "y", "z"];
$array2 = ["a","b"];
$array3 = ["1","2","3","4","5","6"];
$result = array_combine(
$array1,
array_fill(
0,
count($array1),
array_combine(
$array2,
array_fill(0, count($array2), $array3)
)
)
);
print_r($result);
Вот демо
дважды использовать array_fill_keys, чтобы получить результат
$result = array_fill_keys(
$array1,
array_fill_keys($array2, $array3)
);