php中的多级数组是否有array_fill_keys?

时间:2012-11-13 22:29:18

标签: php arrays

我的意思是创建具有相同键但具有第二个参数中指定的每个值的新数组。

就像你有array_fill_keys

一样
 array array_fill_keys ( array $keys , mixed $value )

$keys将是多维数组

1 个答案:

答案 0 :(得分:1)

不是我知道但你可以尝试

$array = array("A","B");
$array["C"] = array("X","Y");
$array["C"]['Z'] = array(1,2,3);

var_dump(fillKeys($array, "banana"));

function fillKeys($keys, $value) {
    $return = array();
    foreach ( $keys as $key => $val ) {
        $return[is_array($val) ? $key : $val] = is_array($val) ? fillKeys($val, $value) : $value;
    }
    return $return;
}

输出

array (size=3)
  'A' => string 'banana' (length=6)
  'B' => string 'banana' (length=6)
  'C' => 
    array (size=3)
      'X' => string 'banana' (length=6)
      'Y' => string 'banana' (length=6)
      'Z' => 
        array (size=3)
          1 => string 'banana' (length=6)
          2 => string 'banana' (length=6)
          3 => string 'banana' (length=6)