【发布时间】:2017-03-21 18:40:14
【问题描述】:
假设我有一个如下所示的关联数组:
$arr = array(
'a' => array(
'b' => 'b',
'c' => 'c',
'd' => array(
'e' =>'e'
),
'f' => 'f',
'g' => 'g'
),
'h' => 'h',
'i' => array(
'j' => 'j',
'k' => 'k'
)
);
现在我想使用整数索引访问数组元素:
0 will return array of key 'a'
1 will return array of key 'b'
2 will return array of key 'c'
3 will return array of key 'd'
4 will return array of key 'e'
..
11 will return array of key 'k'
我尝试使用以下代码通过递归来完成此操作:
function getElement($arr, $id)
{
static $counter = 0;
foreach($arr as $key => $val){
$varNum = count($val);
$total = $counter + $varNum;
if($counter == $id){
return $val;
}
elseif($total > $id){
$counter++;
$res = getElement($val, $id);
return $res;
}
$counter++;
}
}
但是,从索引 4 开始,该功能失败了。
有什么建议吗?
【问题讨论】:
标签: php arrays multidimensional-array associative-array