Php 如何拥有更高级的阵列?

Php 如何拥有更高级的阵列?,php,arrays,Php,Arrays,基本上,我现在将一组值放入一个数组中,如下所示: $flavors = array('Original','Cherry','Chocolate','Raspberry','Mango'); 从这里我可以执行这样一个foreach: foreach($flavors as $flav) { echo doSomething($flav); } 这一切都是一种享受,直到我进入学习的下一个阶段,可能是将两个变量放入doSomething() 例如,假设我想加入樱桃的成分,例如

基本上,我现在将一组值放入一个数组中,如下所示:

$flavors = array('Original','Cherry','Chocolate','Raspberry','Mango');
从这里我可以执行这样一个foreach:

    foreach($flavors as $flav) {

    echo doSomething($flav);

}
这一切都是一种享受,直到我进入学习的下一个阶段,可能是将两个变量放入doSomething()

例如,假设我想加入樱桃的成分,例如

 echo doSomething($flav, $ingredient_of_this_flav);
我不确定是否有任何方法可以做到这一点。。。我想我可能完全需要第二个数组,在这里我使用上面的值作为键?e、 g

$ingredients = array('Original' => 'boring stuff', 'Cherry' => 'cherries and other stuff') etc
然后我会这样做

我想我现在应该去试试这个。这是最好的方法还是有更好的方法?理想情况下,我只需要一个数组,而不必设置$香料和$配料


谢谢您的时间。

您已经注意到,php中的数组是关联的。如果我理解正确,您是在寻找循环遍历每个键/值对的语法吗

foreach($ingredients as $flav => $ingredient) {
  echo doSomething($flag, $ingredient);
}
这就是你要找的吗

如果您希望每个键都有复杂的值,那么您可能希望查看对象,或者更残酷的版本,数组的数组

$ingredients = array('Cherry' => array('Cherries', 'Other stuff'));

上面循环中的
$component
将是一个数组。

我将使用一个关联数组(又称哈希表)和一个flavor=>components方法。大概是这样的:

$flavors = array ('Cherry' => array('stuff1', 'stuff2'), 
                  'Mango' => array('stuff1', 'stuff3'));

echo $flavors['Cherry'][0]; // stuff1

foreach($flavors as $flavor => $ingredients)
{
  print $flavor;
  // $ingredients is an array so we need to loop through it
  foreach($ingredients as $ingredient)
  {
    print $ingredient;
  }
}
   foreach ($ingredients as $flav => $ingredients) 
   {
       echo doSomething($flav, $ingredients);
   }

这称为嵌套循环,将打印味道和每种成分

您可以对数组的键和值进行foreach

   foreach ($ingredients as $flav => $ingredients) 
   {
       echo doSomething($flav, $ingredients);
   }

你快到了。我会将数组设置为如下所示:

$ingredients = array('Original' => array('boring stuff', 'boring stuff2'), 'Cherry' => array('cherries', 'other stuff'));
然后循环如下:

foreach($flavors as $flav => $ingredient) {

        echo doSomething($flav, $ingredient);

}
当然,这完全取决于你在“doSomething()中做了什么”