Kujirudia na Miundo ya Dimensi Nyingi katika PHP

Array ya dimensi nyingi ya kiwango cha kujazwa holela, kwa mfano, kama hii:

php<?php
  $arr = [
    1,
    [
      2, 7, 8
    ],
    [
      3, 4, [5, [6, 7]],
    ]
  ];
?>

Kama unavyoona, array hii ina muundo mgumu, na inachukuliwa kuwa muundo huu unaweza kuwa wa holela na viwango vya kujazwa vinaweza kuwa virefu kadiri vingavyotaka.

Tuseme tunataka kuonyesha kwenye skrini mambo yote ya msingi (yaani, sio arrays) ya array yetu. Katika kesi hii, ili kupitia array kama hii hatutaweza kutumia vitanzi, kwa sababu array ina muundo usiofaa na kiwango kisichojulikana cha kujazwa.

Lakini kupitia array kama hii itakuwa rahisi sana kutumia kujirudia.

Kwanza tufanye kitendakazi, ambacho parametri tutapeana array yetu, na kwenye kitendakazi tufanye kitanzi cha kupitia array yetu:

php<?php
  function func($arr) {
    foreach ($arr as $elem) {
      echo $elem;
    }
  }
  
  func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
?>

Kitanzi tulichofanya kitapitia tu vipengele vya array kuu. Yaani mwanzo kitaonyesha 1, kisha [2, 7, 8], na kisha [3, 4, [5, [6, 7]].

Wacha sasa tutenganishe kwenye kitanzi vipengele-vya-msingi na vipengele-vya-array:

php<?php
  function func($arr) {
    foreach ($arr as $elem) {
      if (is_array($elem)) {
        // kipengele - array
      } else {
        // kipengele - msingi
        echo $elem;
      }
    }
  }
  
  func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
?>

Na sasa tufanye ili ikiwa kipengele chetu ni array, kitendakazi kijijie mwenyewe, kikipeleka kama parameta array hii:

php<?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]]]]);
?>
Задание 1

Array ya dimensi nyingi ya kiwango cha kujazwa holela, kwa mfano, kama hii:

php<?php
  $arr = [1, 2, 3, [4, 5, [6, 7]], [8, [9, 10]]];
?>

Kwa kutumia kujirudia onyesha mambo yote ya msingi ya array hii kwenye skrini.