在PHP中遍历一个包含2个或更多属性的数组

5
我想创建一个包含两个属性的数组,并循环遍历它,但我不知道该怎么做。
在这个例子中只有一个属性:
$foodArray = ["apple", "banana"];

foreach ($foodArray as $food)  {
    echo $food ."<br />";
}

现在我想将绿色添加到苹果中,将黄色添加到香蕉中,并以相同的方式进行循环。最佳方法是什么?


2
所以你想要循环遍历 ['green' => 'apple', 'yellow' => 'banana'] - Jonnix
@Jonnix 如果你有青柠和苹果怎么办?两者都是绿色的。 - Qirel
请定义 "两个属性"。您能给我们展示一个数组的例子吗? - Cid
1
@Qirel 不知道,因此我正在询问在 OP 的新场景下 $foodArray 是什么样子。 - Jonnix
1
有时候我真的很好奇,有些人给赞的条件是什么。最多的情况下,问题似乎不清楚? - Jonnix
6个回答

3

您可以通过在子数组中添加多个元素来添加多个属性

$foodArray = [['name' => 'Apple', 'color' => 'Yellow'], 
              ['name' => 'Banana', 'color' => 'yellow']];

foreach($foodArray as $fruit) {
    echo $fruit['name']." - ".$fruit['color']." <br />";
}

或者如果您只需要这两个属性,您可以将键用作名称,将值用作颜色。

$foodArray = ['Apple' => 'green', 'Banana' => 'yellow'];
foreach($foodArray as $fruit => $color) {
    echo $fruit." - ".$color ." <br />";
}

或者OP可能会在['green' => ['apple', 'lime'], 'yellow' => ['banana']]之后,谁知道呢。 - Jonnix
确实应该这样,@Sam。谢谢你指出来。我看到我不是唯一一个这样做的人..让你思考;-) - Qirel
@Qirel 是的,我也有同样的想法 ;-P - SierraOscar

2

如果要循环遍历多个属性,您需要使用多维数组。

基本概念是一个数组应该包含多个数组。

现在这些数组可以有多个属性。

您需要获取键值对。

因此,您的数组将是:

Original Answer翻译成"最初的回答"

$foodArray = ['green' => 'apple', 'yellow' => 'banana'];
foreach ($foodArray as $foodColor => $food)  {
 echo $foodColor . ' = ' $food ."<br />";
}

或者,你可以定义多维数组并循环遍历它:
$foodArray = [];
$foodArray['apple']['name'] = ['apple'];
$foodArray['apple']['color'] = ['green'];

$foodArray['banana']['name'] = ['banana'];
$foodArray['banana']['color'] = ['yellow'];

最初的回答
并循环遍历它。
foreach ($foodArray as $food)  {
 echo $food['color'] . ' = ' $food['name'] ."<br />";
}

每个食品项目都可以有多个属性,因为它是一个多维数组。

原始答案:最初的回答


2
$foodArray = ['green' => 'apple', 'yellow' => 'banana']; 如果你有多个绿色水果怎么办? - Qirel

2
使用此方法,您可以添加其他属性。最初的回答。
$foodArray = [
   [
     'name' => 'apple',
     'color' => 'green',
   ],
   [
     'name' => 'banana',
     'color' => 'yellow',
   ]
];

//loop
foreach($foodArray as $food) {
    echo $food['name'] . ' have color ' . $food['color'];
}

2
如果您想使用数组存储多个属性,下面的方法使用多维数组可能会有所帮助:

如果您想使用数组存储多个属性,下面的方法使用多维数组可能会有所帮助:

最初的回答
<?php
$foodArray = array(
    "apple" => array(
        "color" => "green",
        "size" => "small"
    ), 
    "banana" => array(
        "color" => "yellow",
        "size" => "medium"
    )
);

foreach ($foodArray as $fruit => $properties)  {
    echo $fruit."<br />";
    foreach ($properties as $key => $value)  {
        echo $key.": ".$value."<br />";
    }   
    echo "<br />";
}
?>

输出:

apple
color: green
size: small

banana
color: yellow
size: medium

1
您可以像这样做:

你可以这样做:

//keyed array
$foodArray = ['apple' => 'green', 'banana' => 'yellow'];
// loop through array as key/value prop
foreach($foodArray as $fruit => $color) {
    echo $fruit." - ".$color ." <br />";
}

你说得对,把它放在周围更合理 :) - user9274045

1
你的一个属性数组
 $foodArray = ["apple", "banana"]; 

新数组用于在第一个数组中添加键

$key_array = ["green", "yellow"];

现在要创建一个包含绿色苹果和黄色香蕉的数组

$output = array_combine($key_array, $foodArray);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接