0 レビュー
4 回答
多次元配列のさまざまな部分にアクセスするPHPforeachループ
私はまだphpforeachループがその特定の部分にアクセスする際にどのように機能するかを理解しようとしています。次のようなアレイ設定があります:
$product = Array
(
[SX- Light weight] => Array
(
[bronze] => 4
[silver] => 5
[gold] => 6
)
[SS- Light weight] => Array
(
[bronze] => 4
[silver] => 5
[gold] => 6
)
)
次のようにforeachループを設定しています:
foreach ($product as $name => $value) {
# code...
echo '<option value="'.$name.'">'.$name.'</option>';
}
たとえば、 $name
を「SX-Lightweight」として吐き出します。 [bronze]
の4番にアクセスするにはどうすればよいですか?
わからない
0
レビュー
答え :
解決策:
foreach ($product as $name => $value) {
// display 'bronze' index's value (assuming it is defined)
echo 'For product '.$name.', bronze value = '.$value['bronze'];
}
サブループを使用してすべての「金属」を表示することもできます:
foreach ($product as $name => $value)
{
echo "For product ".$name.", values are: \n";
// assuming $value is an associative array
foreach ($value as $metal => $number)
{
echo "- ".$metal.": ".$number."\n";
}
}
わからない
0
レビュー
答え :
解決策:
この2次元配列を、スプレッドシートのように2次元で視覚化すると理解に役立つ場合があります。
[bronze][silver][gold]
[SX- Light weight] 4 5 6
[SS- Light weight] 4 5 6
foreach
は行をループします。つまり、
foreach($ product as $ name => $value){
$value
は単一の値ではなく、行であり、ブロンズ、シルバー、およびゴールドの列の値を含む配列です。したがって、このループの最初の反復では、たとえば、 $value
には
array('bronze' => 4, 'silver' => 5, 'gold' => 6)
行の各列を繰り返し処理し、別の foreach
を使用してそれらの値で何かを行うことができますが、特定の列にアクセスする必要がある場合は、次のように、必要なものを指定するためのキー:
echo $value ['bronze'];
2次元配列の内容を行と列として考えることは、かなり一般的な視覚化です。実際、PHP 5.5以降には、 array_column
関数があり、特定の列からすべての値を新しい配列にプルできます。
$ bronze = array_column($ product、'bronze'); // 例えば。
明らかに、配列が2次元を超えると、この視覚化はあまり役に立ちません。
わからない
0
レビュー
答え :
解決策:
値から参照してください。
foreach ($product as $name => $value) {
echo $value['bronze'];
}
わからない
0
レビュー
答え :
解決策:
PHPで多次元配列をループするforeachコマンドの使用法は、配列の構造によって異なります。
例:
<?php
// Let's build the array structure
$array[1]['name'] = "John";
$array[1]['phone'] = "+1 888 9567834";
$array[2]['name'] = "Doe";
$array[2]['phone'] = "+44 32 5600 673";
$array[3]['name'] = "Robert";
$array[3]['phone'] = "+1 45 5634 0843";
$array[4] = "Maria";
foreach ($array as $key1 => $value)
{
echo "<br> Value: $key1 Value: $value<br>";
// If it's an array, let's do another look inside it
if (is_array($value))
{
foreach ($value as $key2)
{
echo "---- $key2 <br>";
}
}
// if it's a simple string (non-array), let's print it
else
{
echo "---- $value";
}
}
?>
PHPでの配列のループの詳細については、この記事を確認してください。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。