2013-07-26 65 views
1

我有包含我希望爲鍵,如使用值的數組從鍵多維數組值:得到另一個數組

$keys = array("first", "second", "third", "fourth"); 

的數量和這些價值觀的內容將動態內被改變循環。我希望他們能夠成爲一個多維數組的鍵,但鍵陣列的數量總是會發生變化,因此,雖然這將提供鑰匙,首先陣列工作:

$multidimensional[$keys[0]][$keys[1]][$keys[2]][$keys[3]] = "some value"; 

在環路後來鍵可以是這樣的:

$keys = array("first", "second", "gamma", "delta", "theta", "kappa"); 

所以在循環中使用這樣的:

$multidimensional[$keys[0]][$keys[1]][$keys[2]][$keys[3]] = "some value"; 

不會工作,也需要基於鍵的數量是動態的。

我已經瀏覽了PHP手冊中的每個數組函數,並且似乎無法找到滿足此目的的某些內容。我完全忽略了一些基本的東西嗎?也許一些花括號魔法?

+0

你想要什麼來實現與'$ multidimensional'? – 2013-07-26 18:52:06

+0

[在PHP語言中如何向數組添加(任何類型)值的可能的重複(http://stackoverflow.com/questions/17873351/how-to-add-any-type-value-一個數組的指定索引在PHP語言) – Barmar

+0

奇怪的是,我剛剛回答了一個幾乎相同的問題,昨晚。這真的是一個普遍的需求嗎? – Barmar

回答

0

你去那裏...

function setMultidimensionalValue($value, array $keys, array $multidimensional) 
{ 
    $node = &$multidimensional; 
    foreach ($keys as $key) 
    { 
    if (!isset($node[$key])) 
     $node[$key] = null; 
    $node = &$node[$key]; 
    } 
    $node = $value; 
    return $multidimensional; 
} 

// Example of usage 
$multidimensional = array(); 
var_dump(setMultidimensionalValue('value', array('first', 'second', 'third'), $multidimensional));