私はPHP(以下の例の出力)での$ ingredient_differenceという名前の次の配列があります。私は「foreachのを使用してidrecipeの少なくとも値を抽出しようとしている適切な構文連想配列と
Array (
[total_remaining_ingredients] => Array (
[0] => 2 [1] => 3 [2] => 10
)
[idrecipe] => Array (
[0] => 8 [1] => 10 [2] => 9
)
[value] => Array ([0] => 1 [1] => 1 [2] => 1)
)
を」、私は次のコードで未定義のインデックスを取得しています:
foreach($ingredient_difference as $recipe_output)
{
echo $recipe_output['idrecipe']."<br />";
}
私は上記の知っているまさにそれを行うための方法ではありませんが、これはまたのために(未定義のインデックスエラーが働いていませんでした 『idrecipe』 'value'、 'total_remaining_ingredients'):
foreach($ingredient_difference as $c => $rowkey)
{
$sorted_idrecipe[] = $rowkey['idrecipe'];
$sorted_value[] = $rowkey['value'];
$sorted_remaining_ingredients[] = $rowkey['total_remaining_ingredients'];
}
foreach構文には何がありますか?それとも良い方法がありますか?
このforeach構文も与えている未定義のインデックスエラー:ComFreekへ
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'];
}
回答感謝:あなたの最初のforeach()
ループで
$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'];
}
感謝。それは間違いなく 'idrecipe'値を取得します。 3つの異なるインデックス(つまり、「idrecipe」、「value」、「total_remaining_ingredients」)を取得するには、どうすればよいでしょうか。私はforeach($ key => $ valueのような$ ingredients_difference)のようなものを使ってトリックをすると思っていましたが、何の成功もありませんでした。 –
あなたは何をしたいですか?エントリが3つしかない場合は、必要ではありません。あなたのforeach()*は正しいですが、間違った方法で特定の値にアクセスすると思います。コードを教えてください。 – ComFreek
'idrecipe'、 'value'、および 'total_remaining_ingredients'の3つの異なるforeachループを実行する代わりに、foreachループを1つだけ構築して3つすべての値を取得する方法があるのかと疑問に思った。上記の修正されたコードを参照してください。これは、私に未定義のインデックスエラーを与えています。 –