我仍然试图了解php foreach循环如何访问它的某些部分。我有这样的阵列设置:
$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
为&#34; SX-轻量级&#34;例如。我如何访问[bronze]
号码4?
答案 0 :(得分:2)
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";
}
}
答案 1 :(得分:0)
从值中引用它。
foreach ($product as $name => $value) {
echo $value['bronze'];
}
答案 2 :(得分:0)
这可能有助于您理解在二维中可视化这个二维数组,有点像电子表格。
[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'];
将二维数组的内容视为行和列是一种非常常见的可视化。事实上,在PHP 5.5+中有array_column
函数,它允许您将特定列中的所有值拉入新数组。
$bronze = array_column($product, 'bronze'); // for example.
显然,如果数组超出两个维度,这种可视化就变得不那么有用了。
答案 3 :(得分:0)
您使用的foreach命令遍历PHP中的多维数组将取决于数组的结构。
例如:
<?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";
}
}
?>
查看本文,了解有关looping through array in PHP的更多信息。