Array
(
[Colour] => Array
(
[Red] => Red
[Blue] => Blue
)
[Size] => Array
(
[Small] => Small
[Medium] => Medium
[Large] => Large
)
[Brand] => Array
(
[Nike] => Nike
[Adidas] => Adidas
)
)
Как я могу получить многомерный массив, чтобы получить этот вариант вывода:
Red - Small - Nike
Red - Medium - Nike
Red - Large - Nike
Red - Small - Adidas
Red - Medium - Adidas
Red - Large - Adidas
Blue - Small - Nike
Blue - Medium - Nike
Blue - Large - Nike
Blue - Small - Adidas
Blue - Medium - Adidas
Blue - Large - Adidas
То, что вы ищете, это декартово произведение.
Объедините значения следующим образом:
$data = [
'Colour' => [
'Red' => 'Red',
'Blue' => 'Blue',
],
'Size' => [
'Small' => 'Small',
'Medium' => 'Medium',
'Large' => 'Large',
],
'Brand' => [
'Nike' => 'Nike',
'Adidas' => 'Adidas',
],
];
$combined = [];
foreach ($data['Colour'] as $colour) {
foreach ($data['Brand'] as $brand) {
foreach ($data['Size'] as $size) {
$combined[] = implode(' - ', [
$colour,
$size,
$brand
]);
}
}
}
var_dump($combined);
Для справки смотрите:
Например, смотрите:
Других решений пока нет …