2012-07-06 30 views
1

我有一个这样的阵列:翻译串入参考关联数组索引在PHP

[0] => [basketball][player] 
[1] => [basketball][threes][player] 
[2] => [basketball][home][leaders][player] 
[3] => [basketball][away][leaders][player] 

欲每个元素转换成在一个关联数组一个参照本发明的特定元素:

$post['basketball']['player'] 
$post['basketball']['threes']['player'] 
etc. 

有没有办法将前者自动转换为后者?如果是这样,这将是非常方便的,如果不是,可能会超级不方便,所以我希望有一种方法,但我不知道它会是什么。

回答

2

我要说的是这样的:(使用substr

  • 剥去[在开始和]
  • 使用explode字符串由][
  • 遍历分裂爆炸件,使用它们作为阵列的关键。

因此,像这样:

$array = ..... // the big array 
$str = "[basketball][player]"; 
$keys = explode("][",substr($str,1,-1)); 
$pos = $array; // PHP does a lazy copy, so there is no performance issue here 
while($key = array_shift($keys)) $pos = $pos[$key]; 
// $pos is now your target element 
+0

感谢您的回答。不幸的是,它似乎并不奏效。当我想要的是'$ pos ['basketball'] ['player']'时,我相信这会试图让'$ pos ['basketball']'和'$ pos ['player']'分开。 (这个结论是基于将此代码复制并粘贴到我的应用程序中并尝试使用它。) – 2012-07-06 17:48:53

+0

您是正确的,它会获得'$ pos ['basketball']'后跟'$ pos ['player']',但它会分配回到'$ pos',所以结果是'$ pos ['basketball'] ['player']'。 – 2012-07-06 18:09:42