PHP多维数组

the*_*ack 0 php multidimensional-array

Array
(
    [a] => Array
        (
            [a] => Array
                (
                    [a] => a
                    [b] => b
                )

            [b] => Array
                (
                    [a] => a
                    [b] => b
                )

        )

    [b] => Array
        (
            [a] => Array
                (
                    [a] => a
                    [b] => b
                )

            [b] => Array
                (
                    [a] => a
                    [b] => b
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

如何从上面的数组中获取一个字符串?

aaa,aab,aba,abb,baa,bab,bba,bbb
Run Code Online (Sandbox Code Playgroud)

And*_*ore 7

您可以简单地编写一个递归函数来自动将键连接在一起.

function getKeysString($array, $prefix = '') {  
  $keys = array();

  foreach($array as $key => $value) {
    $str = $prefix.$key;

    if(is_array($value)) {
      $str = getKeysString($value, $str);
    }

    $keys[] = $str;
  }

  return implode(',', $keys);
}
Run Code Online (Sandbox Code Playgroud)

所以,给定数组:

$arr = array (
  'a' => array (
    'a' => array (
      'a' => null,
      'b' => null
    ),
    'b' => array (
      'a' => null,
      'b' => null
    )
  ),
  'b' => array (
    'a' => array (
      'a' => null,
      'b' => null
    ),
    'b' => array (
      'a' => null,
      'b' => null
    )
  )
);
Run Code Online (Sandbox Code Playgroud)

以下内容将为您提供所需的结果:

$result = getKeysString($arr);
Run Code Online (Sandbox Code Playgroud)