PHP-де параметрмен рекурсия
Рекурсия көмегімен массив элементтерін ретімен шығарайық. Массив бастапқыда функция параметріне берілсін:
<?php
func([1, 2, 3]);
?>
Алдымен рекурсиясыз,
array_shift
функциясын қолданып, массивтің барлық элементтерін
кезең-кезеңмен шығарайық:
<?php
function func($arr) {
var_dump(array_shift($arr)); // 1 шығарады
var_dump($arr); // [2, 3] шығарады - массив қысқарды
var_dump(array_shift($arr)); // 2 шығарады
var_dump($arr); // [3] шығарады - массив қысқарды
var_dump(array_shift($arr)); // 3 шығарады
var_dump($arr); // [] шығарады - массив бос
}
func([1, 2, 3]);
?>
Көріп отырғаныңыздай, array_shift
функциясы массивтің бірінші элементін кесіп алып,
қайтарады, сонымен бірге массив осы элементке қысқарады.
Енді рекурсияны қолданайық:
<?php
function func($arr) {
var_dump(array_shift($arr));
var_dump($arr);
if (count($arr) !== 0) {
func($arr);
}
}
func([1, 2, 3]);
?>
Әрине, массив элементтерін цикл арқылы анықтау оңайырақ. Келтірілген мысалдар жай ғана рекурсия жұмысын қарапайым мысалдарда (тәжірибедегі емес) көрсетеді. Рекурсияны қолданудың пайдалы мысалдары жай ғана күрделірек, біз оларды төменде қарастырамыз.
Массив берілген:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>
Рекурсия көмегімен осы массивтің элементтерін экранға шығарыңыз.