2012-04-18 57 views
1

考虑以下数组:拆分数组键=>阵列()

$array[23] = array(
    [0] => 'FOO' 
    [1] => 'BAR' 
    [2] => 'BAZ' 
); 

每当我想与内部阵列工作,我做这样的事情:

foreach ($array as $key => $values) { 
    foreach ($values as $value) { 
    echo $value; 
    } 
} 

外的foreach -loop用来分割$ array的$ key和$ value-pairs。对于有很多键([23],[24],...)的数组,这可以很好地工作,但如果事先知道$ array只有一个键(在这种情况下为23),那么看起来多余的。在这种情况下,是不是有更好的方法来分离键值?类似于

split($array into $key => $values) 
foreach ($values as $value) { 
    echo $value; 
} 

我希望我明确自己。

回答

2

reset将返回数组和key的第一个元素返回它的关键:

$your_inner_arr = reset($array); 
$your_key = key($array); 
1

是的,只是摆脱你的第一个foreach,并使用你的外部数组的已知$ key定义你正在使用的数组。

foreach ($array[23] as $key =>$val): 
    //do whatever you want in here 
endforeach; 
1

如果数组只有一个元素,你可以用reset得到它:

$ar = array(23 => array('foo', 'bar')); 
$firstElement = reset($ar); 
0

一个非常简洁的方法将是

foreach(array_shift($array) as $item) { 
    echo $item; 
}