当每个键都是字符串时,在PHP中迭代多维关联数组

当每个键都是字符串时,在PHP中迭代多维关联数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个数组,如: $fruits = array( 'citrus' => array( 'fruit one' => 'orange', 'fruit two' => 'lime', ), 'melon' => array( 'fruit one' => 'honeydew', 'fruit two' => 'cantalope', ), 'berry' => array( 'fruit o

我有一个数组,如:

$fruits = array(
  'citrus' => array(
    'fruit one' => 'orange',
    'fruit two' => 'lime',
  ),
  'melon' => array(
    'fruit one' => 'honeydew',
    'fruit two' => 'cantalope',
  ),
  'berry' => array(
    'fruit one' => 'raspberry',
    'fruit two' => 'strawberry',
  ),
  'apple' => array(
    'fruit one' => 'granny smith',
    'fruit two' => 'fuji',
  )

);
我希望能够访问它的片段,比如
echo$fruits[0]['fruitone']这样我就可以创建一个for循环来获取数组的特定组。我的意思是,理想情况下,我能够做以下事情:

for($i = 0; $i <= 1; $i++)
  echo $fruit[$i]['fruit one'];

// Then some other code

for($i = 2; $i <= 3; $i++)
  echo $fruit[$i]['fruit one'];
for($i=0;$i
array\u slice
()就是为此而制作的

对于前两个水果组:

foreach(array_slice($fruits,0,2) as $fruitGroup) echo $fruitGroup['fruit one'];
foreach(array_slice($fruits,2,2) as $fruitGroup) echo $fruitGroup['fruit one'];
对于接下来的两个水果组:

foreach(array_slice($fruits,0,2) as $fruitGroup) echo $fruitGroup['fruit one'];
foreach(array_slice($fruits,2,2) as $fruitGroup) echo $fruitGroup['fruit one'];


这样做的好处是简单(优于Chrys的解决方案),并且不会破坏数组中的原始密钥。

Tomulent,下面Ben的回答是否让您满意?它允许您循环遍历每个水果组中的每个水果。如果这不是您想要的(我无法从OP中看出),请重新表述您正在寻找的内容或更好地描述所需的输出。我编辑了原始内容,希望能让它更清晰。我的真实数组中有40个数组。我需要一次获取一个数组范围。切换我接受的答案,因为这是最简单的。Chrys的操作可以在不破坏键的情况下完成,但这需要大量less代码。谢谢!你们今天都教了我一些东西!Chrys你们实际上不需要
$i
。只要用
$ptr[]=$values
添加值,PHP就会为你们自动递增键。