2013-07-26 64 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));