具有关联数组的PHP foreach函数的正确语法

具有关联数组的PHP foreach函数的正确语法,php,arrays,foreach,associative-array,Php,Arrays,Foreach,Associative Array,我在PHP中有一个名为$component_difference的数组(下面的输出示例): 我尝试使用“foreach”至少提取idrecipe的值,但我使用以下代码获取未定义的索引: foreach($ingredient_difference as $recipe_output) { echo $recipe_output['idrecipe']."<br />"; } 我的foreach语法缺少什么?还是有更好的办法 此foreach构造还提供未定义的索引错误: fo

我在PHP中有一个名为$component_difference的数组(下面的输出示例):

我尝试使用“foreach”至少提取idrecipe的值,但我使用以下代码获取未定义的索引:

foreach($ingredient_difference as $recipe_output)
{
    echo $recipe_output['idrecipe']."<br />";
}
我的foreach语法缺少什么?还是有更好的办法

此foreach构造还提供未定义的索引错误:

foreach($ingredient_difference as $rowkey => $index_value)
{
    $id_value[$key] = $index_value['idrecipe'];
    $value_value[$key] = $index_value['value'];
    $tri_value[$key] = $index_value['total_remaining_ingredients'];
}
感谢ComFreek:

$result_ingredient_difference = array();
$count_id = count($ingredient_difference['idrecipe']);

for ($i=0; $i<$count_id; $i++)
{
  $result_ingredient_difference[] = array(
  'tri' => $ingredient_difference['total_remaining_ingredients'][$i],
  'idrecipe' => $ingredient_difference['idrecipe'][$i],
  'value' => $ingredient_difference['value'][$i]
  );
}
//rearranged array of $result_ingredient_difference able to call proper indexing with the below
foreach($result_ingredient_difference as $rowkey => $index_value) 
{ 
  $id_value[$key] = $index_value['idrecipe']; 
  $value_value[$key] = $index_value['value']; 
  $tri_value[$key] = $index_value['tri'];
} 
$result\u component\u difference=array();
$count_id=count($component_difference['idrecipe']);
对于($i=0;$i$成分差异[‘总剩余成分’][$i],
“idrecipe”=>$i差异['idrecipe'][$i],
'value'=>$component\u差异['value'][$i]
);
}
//重新排列的$result\u component\u差异数组能够调用下面的适当索引
foreach($result\u component\u差异为$rowkey=>$index\u值)
{ 
$id_值[$key]=$index_值['idrecipe'];
$value_value[$key]=$index_value['value'];
$tri_值[$key]=$index_值['tri'];
} 

使用第一个
foreach()
循环,您可以迭代主数组,而不是子数组
idrecipe
的值

foreach($ingredient_difference['idrecipe'] as $value)
{
  echo $value;
}

foreach构造一个循环。在代码中

foreach($ingredient_difference as $recipe_output) {
echo $recipe_output['idrecipe']."<br />"; }
你得到了错误

要了解foreach循环是如何工作的,请使用上的示例

我想你想做的是:

foreach($ingredient_difference['idrecipe'] as $value_of_recipe)
{
    echo $value_of_recipe."<br />";
}
foreach($component\u difference['idrecipe']作为配方的$value\u)
{
echo配方的$value_.“
”; }
谢谢。这肯定会得到“idrecipe”值。我将如何获得三个不同的指数(即“idrecipe”、“value”和“total_剩余成分”)。我原以为使用foreach($key=>$value)这样的方法就可以了,但我没有成功。你到底想做什么?如果您只有三个条目,则不必这样做。您的foreach()是正确的,但我认为您访问特定值的方式是错误的。请给我们看看代码。我想知道是否有办法只构造一个foreach循环来获取所有三个索引的值,而不是为“idrecipe”、“value”和“total_remaining_components”索引运行三个不同的foreach循环。请看上面修改的代码,它给了我未定义的索引错误。我会在测试后公布结果。非常感谢。
foreach($ingredient_difference as $recipe_output) {
echo $recipe_output['idrecipe']."<br />"; }
$ingredient_difference['total_remaining_ingredients']['idrecipe']
$ingredient_difference['idrecipe']['idrecipe']
$ingredient_difference['value']['idrecipe']
foreach($ingredient_difference['idrecipe'] as $value_of_recipe)
{
    echo $value_of_recipe."<br />";
}