2012-11-13 20 views
0

我的意思是用相同的鍵創建新的數組,但每個值都在第二個參數中指定。有沒有array_fill_keys在PHP中的多級陣列?

就像你有array_fill_keys

array array_fill_keys (array $keys , mixed $value) 

$keys將是一個多維數組

+0

告訴我們你已經嘗試過了。 – Madbreaks

+0

提供一些示例代碼..和預期的輸出... – Baba

+0

就像這樣:http://pl1.php.net/manual/en/function.array-fill-keys.php但是對於多維數組。我很抱歉,但沒有什麼可以寫更多。我什麼都沒試過。 – rsk82

回答

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)