I am stuck...
I have this value in my PHP:
$arr['something1']['something2'] = value;
I want to have a func($arr) that returns:
$arr['something1[something2]'] = value;
Here is my current codes for nested 3 arrays:
static function flattenArray(array $notFlat, string $pK) {
  $index = 0;
  foreach ($notFlat as $k => $v) {
    if (is_array($v)) {
      foreach ($v as $_k => $_v) {
        if (is_array($_v)) {
          foreach ($_v as $__k => $__v) {
            if (is_array($__v)) {}
            else{
              unset($notFlat[$k]);
              $newArray = array_slice($notFlat, 0, $index, true) +
                $notFlat[$k] = [$pK.$k.'['.$_k.']'.'['.$__k.']' => $__v] +
                array_slice($notFlat, $index, NULL, true);
              $notFlat = $newArray;
            }
          }
        }
      }
    }
    $index ++;
  }
  return $notFlat;
}
But that is too manual... I think recursive function can work but I am not sure what to return in case iterated value is an array.
EDIT1: Expected Output
$asd = ['asd' => ['jkf' => ['qwe' => 'wer', 'asd' => '123', 'kjk' => 'sdf', '456' => 'zxc']], 'dfg', 'test' => ['ert' => '234'], 'cvf'];
print_r(func($asd));
/*
Array
(
    [test[ert]] => 234
    [asd[jkf][456]] => zxc
    [asd[jkf][kjk]] => sdf
    [asd[jkf][asd]] => 123
    [asd[jkf][qwe]] => wer
    [0] => dfg
    [1] => cvf
)
*/
 
    