PHP හි රිකර්ෂන් සහ බහු-මාන ව්යුහයන්
අත්තනෝමතික මට්ටමේ කුහරයන් සහිත බහු-මාන අරාවක් ලබා දී ඇත, උදාහරණයක් ලෙස, මෙය:
<?php
$arr = [
1,
[
2, 7, 8
],
[
3, 4, [5, [6, 7]],
]
];
?>
ඔබට පෙනෙන පරිදි, මෙම අරාව සංකීර්ණ ව්යුහයක් සහිත අතර, මෙම ව්යුහය අත්තනෝමතික විය හැකි අතර කුහර මට්ටම් අතිශයින් ගැඹුරු විය හැකි බව උපකල්පනය කෙරේ.
අපගේ අරාවේ සියලුම ප්රාථමික (එනම් අරා නොවන) මූලද්රව්ය තිරය මත පෙන්වීමට අපි අවශ්ය යැයි සිතමු. මෙම අවස්ථාවේදී, එවැනි අරාවක් සකස් කිරීම සඳහා ලූප භාවිතා කිරීමට අපට හුදෙක් හැකි නොවේ, මන්ද අරාව වැරදි ව්යුහයක් සහ නොදන්නා කුහර මට්ටමක් සහිත වේ.
කෙසේ වෙතත්, එවැනි අරාවක් සකස් කිරීම සඳහා රිකර්ෂන් භාවිතා කිරීම ඉතා පහසු වනු ඇත.
පළමුව, අපි ශ්රිතයක් සාදමු, එහිදී පරාමිතියක් ලෙස අපගේ අරාව සම්ප්රේෂණය කරන අතර, ශ්රිතය තුළ අපගේ අරාව සකස් කිරීම සඳහා ලූපයක් සාදමු:
<?php
function func($arr) {
foreach ($arr as $elem) {
echo $elem;
}
}
func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
?>
අප විසින් සාදන ලද ලූපය ප්රධාන අරාවේ මූලද්රව්ය පමණක්
සකසනු ඇත. එනම්, එය මුලින්ම 1 පෙන්වයි,
පසුව [2, 7, 8],
ඉන්පසු [3, 4, [5, [6, 7]].
දැන් අපි ලූපය තුළ ප්රාථමික මූලද්රව්ය සහ අරා මූලද්රව්ය වෙන් කරමු:
<?php
function func($arr) {
foreach ($arr as $elem) {
if (is_array($elem)) {
// මූලද්රව්යය - අරාව
} else {
// මූලද්රව්යය - ප්රාථමික
echo $elem;
}
}
}
func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
?>
දැන් අපි එය කරමු, අපගේ මූලද්රව්යය අරාවක් නම්, ශ්රිතය ස්වයංක්රීයව කැඳවයි, මෙම අරාව පරාමිතියක් ලෙස සම්ප්රේෂණය කරයි:
<?php
function func($arr) {
foreach ($arr as $elem) {
if (is_array($elem)) {
func($elem);
} else {
echo $elem;
}
}
}
func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
?>
අත්තනෝමතික මට්ටමේ කුහරයන් සහිත බහු-මාන අරාවක් ලබා දී ඇත, උදාහරණයක් ලෙස, මෙය:
<?php
$arr = [1, 2, 3, [4, 5, [6, 7]], [8, [9, 10]]];
?>
රිකර්ෂන් භාවිතයෙන් මෙම අරාවේ සියලුම ප්රාථමික මූලද්රව්ය තිරය මත පෙන්වන්න.