Как объединить каждое значение из одного массива с другим, чтобы создать структуру, которая будет источником для таблицы.
Пример, у нас есть массив:
$a = array(
'animal' => ['horse', 'donkey', 'elephant'],
'food' => ['grass', 'hay', 'acorn'],
);
And the effect I need is:
$result = array(
'horse' = array(
'grass' => [ 'animal' => 'horse', 'food' => 'grass'],
'hay' => [ 'animal' => 'horse', 'food' => 'hay'],
'acorn' => [ 'animal' => 'horse', 'food' => 'acorn'],
},
'donkey' = array(
'grass' => [ 'animal' => 'donkey', 'food' => 'grass'],
'hay' => [ 'animal' => 'donkey', 'food' => 'hay'],
'acorn' => [ 'animal' => 'donkey', 'food' => 'acorn'],
},
'elephant' = array(
'grass' => [ 'animal' => 'elephant', 'food' => 'grass'],
'hay' => [ 'animal' => 'elephant', 'food' => 'hay'],
'acorn' => [ 'animal' => 'elephant', 'food' => 'acorn'],
},
);
Но мой вопрос также заключается в том, можно ли обобщить алгоритм на произвольно большие измерения.
Что касается алгоритмов, я бы сказал, попробовать что-то самостоятельно.
При этом я предлагаю начать с вложенных циклов foreach:
$result = array();
foreach ($a['animal'] as $val) {
$result[$val] = array();
foreach ($a['food'] as $val2) {
$result[$val][$val2] = array('animal' => $val, 'food' => $val2);
}
}
а затем, возможно, расширить этот код, чтобы быть модульным / настраиваемым.
Других решений пока нет …