Записать в массив результат рекурсивной функции
Есть такая ф-ция:
function someFunction($n = 0){
if($n <= 3) {
foreach($item_product as $item){
$arr[] = $item['name'];
}
echo '<pre>'; print_r($arr); echo '</pre>';
someFunction($n+1);
}
}
На выходе три раза повторяется массив:
Array
(
[0] => name1
[1] => name2
[2] => name3
)
Array
(
[0] => name4
[1] => name5
[2] => name6
)
Array
(
[0] => name7
[1] => name8
[2] => name9
)
А как бы все это записать в один такой массив:
Array
(
[0] => name1
[1] => name2
[2] => name3
[3] => name4
[4] => name5
[5] => name6
[6] => name7
[7] => name8
[8] => name9
)
Хочу отметить что переменная $n тут не просто так, она очень важна, т.к. подставляется в запрос, который подразумевает использование нумерации страниц, т.е. сначала вытаскиваем все данные со страниц 1,2,3 по очереди, и хотелось бы чтобы на выходе был не постраничный результат, а все в одном массиве.
Ответы (1 шт):
Автор решения: evgen_dev
→ Ссылка
Вам нужно возвращать результат работы функции и объединять его.
function someFunction($n = 0){
$result = [];
//$item_product ???
$item_product = [
['name' => 'name1'],
['name' => 'name2'],
['name' => 'name3'],
['name' => 'name4'],
['name' => 'name5'],
];
if($n <= 3) {
$arr = [];
foreach($item_product as $item){
$arr[] = $item['name'];
}
$result = array_merge($arr, someFunction($n+1));
}
return $result;
}
var_dump(someFunction());