Спасибо за помощь, как всегда.
Мой код генерирует массивы в следующем формате
${'readyformerge' . $b} = $temparraytwo;
Что приводит к именам массивов
$readyformerge1
$readyformerge2
$readyformerge3
так далее…
Это хорошо работает, и мы знаем, что значение, которое содержит $ b, — это количество массивов, которые нам нужно объединить. Однако я не совсем понимаю, как это сделать, когда мы не узнаем до запуска скрипта, сколько массивов будет создано.
По сути, я хотел бы использовать следующее, чтобы получить результат, но, как вы видите, я могу сделать это только для количества результатов, которое, я думаю, вернет НЕ фактическое количество результатов. Любая помощь?
$outputmultidimensionalevent = array_merge_recursive(${'readyformerge' . $b},${'readyformerge' . $b});
print_r($outputmultidimensionalevent); echo '<br/>';
Ваша проблема — результат плохого дизайна.
Вместо:
${'readyformerge' . $b} = $temparraytwo;
Вы должны сделать что-то вроде этого:
$readyformerge[$b] = $temparraytwo;
А потом:
$merged = array();
foreach ($readyformerge as $one) {
$merged = array_merge($merged, $one);
}
Спасибо, это подтолкнуло меня в правильном направлении.
В настоящее время он настроен так:
$z=1;
$readyformergemulti = array();
while ($z <= $i){
array_push($readyformergemulti,${'readyformerge' . $z});
$z++;
}
foreach ($readyformergemulti as $one) {
print_r($one);
echo '<br/>';
$merged = array_merge_recursive($merged, $one);
}
print_r($readyformergemulti); echo '<br/>';
print_r($merged); echo '<br/>';
Но, к сожалению, $ merged ничего не возвращает. Если вы посмотрите на следующее, первые 4 строки — это массивы $ readyformerge, а 5-я строка — желаемый результат:
Array ( [house] => 2797 )
Array ( [house] => 2829 )
Array ( [house] => 2736 )
Array ( [electronica] => 2763 [house] => 2763 )
Array ( [electronica] => Array (2763) [house] => Array (2763,2797,2892,2736 ) )
Извините за боль, и я ЗНАЮ, что всем нужно видеть больше кода, но с тысячами строк его сложно отобразить!
Если вы можете помочь снова, это было бы здорово!