在单个数组中查找所有数组的函数


a function that finds every array within a single array

朋友们,请帮帮我。我试图写一个函数,找到每个数组和数组,然后修改所有数组找到。

我已经实现了第一个目标,第二个目标还没有完全实现。

这是目前为止的函数。

  $count = 0;
  function findObj($arr) {
    global $count;
    foreach($arr as $key => $value) {
      if(gettype($arr[$key]) == 'array') {
        // append the string "here" to the array found
        $arr[$key][] = 'here';
        $count++;
        // call same function within function with the argument of array found
        findObj($arr[$key]);
      }
    }
    $rtnArr = [$count, $arr];
    return $rtnArr;
  }
  var_dump(findArr($arr));
  // this returns
  array (size=5)
  0 => int 1
  1 => int 44
  2 => int 43
  3 => 
    array (size=2)
      0 => string 'hello' (length=5)
      1 => string 'here' (length=4)
  4 => 
    array (size=4)
      0 => string 'one' (length=3)
      1 => string 'two' (length=3)
      2 => 
        array (size=2)
          0 => string 'three' (length=5)
          1 => string 'four' (length=4)
      3 => string 'here' (length=4)

只修改了第一层的数组。请帮帮我,我的脑子都快炸了

<?php
$input =
[
    [
        'foo',
        [
            'bar',
            'baz',
            [
                'bat',
                'man'
            ]
         ]
    ]
];
function add_extra_element_recursive(array &$array)
{
    foreach($array as $key => &$value) {
        if(is_array($value)) {
            add_extra_element_recursive($value);
        }
    }
    $array[] = 'extra';
}
var_export($input);
echo "'n";
add_extra_element_recursive($input);
var_export($input);
输出:

array (
  0 => 
  array (
    0 => 'foo',
    1 => 
    array (
      0 => 'bar',
      1 => 'baz',
      2 => 
      array (
        0 => 'bat',
        1 => 'man',
      ),
    ),
  ),
)
array (
  0 => 
  array (
    0 => 'foo',
    1 => 
    array (
      0 => 'bar',
      1 => 'baz',
      2 => 
      array (
        0 => 'bat',
        1 => 'man',
        2 => 'extra',
      ),
      3 => 'extra',
    ),
    2 => 'extra',
  ),
  1 => 'extra',
)