将数组拆分为key =>阵列()

时间:2012-04-18 18:08:15

标签: php

考虑以下数组:

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

每当我想使用内部数组时,我都会这样做:

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

外部foreach循环用于分割$ array和$ value对$ array。这适用于具有许多键的数组([23],[24],...)但如果您事先知道$ array只有一个键(在这种情况下为23),那么它似乎是多余的。在这种情况下,是不是有更好的方法将键从值中分离出来?像

这样的东西
split($array into $key => $values)
foreach ($values as $value) {
  echo $value;
}

我希望我能说清楚。

4 个答案:

答案 0 :(得分:2)

reset返回数组的第一个元素,key返回其键:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

如果一个数组只有一个元素,你可以使用reset

来获取它
$ar = array(23 => array('foo', 'bar'));
$firstElement = reset($ar);

答案 3 :(得分:0)

非常简洁的方法是

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