我有一个数组,我想输出一些数据:
array(4) {
[123]=>
array(2) {
["color"]=>
string(3) "red"
["name"]=>
string(5) "harry"
}
[345]=>
array(2) {
["color"]=>
string(4) "blue"
["name"]=>
string(4) "fred"
}
["animal"]=>
string(5) "horse"
["plant"]=>
string(4) "tree"
}
这是我的解决方案,我感觉非常不智:
echo "<b>These are all the colors:</b><br>";
foreach ($properties as $key => $val) {
if ($key != "plant" AND $key != "animal"){
echo $val['color']."<br>";
}
}
echo "<b>This is the animal:</b><br>";
foreach ($properties as $key => $val) {
if ($key == "animal"){
echo $val."<br>";
}
}
echo "<b>This is the plant:</b><br>";
foreach ($properties as $key => $val) {
if ($key == "plant"){
echo $val."<br>";
}
}
它给了我想要的结果......
这些都是颜色:
红色
蓝色
这是动物:
马
这是工厂:
树
...但我想也许你知道一个更简单的解决方案。我确信必须只能与子阵列交谈,但我找不到办法。
答案 0 :(得分:1)
从php 5.5开始,您可以使用 array_column :
$color = array_column($properties, 'color');
从php 5.3开始,你可以使用带有匿名函数的array_map,如下所示:
$color = array_map(function ($ar) {return $ar['color'];}, $properties);
print_r($color);
exit;
答案 1 :(得分:1)
我认为,在foreach中使用Switch会对这个问题有帮助。
foreach ($properties as $key => $val) {
switch($key){
case '':
break;
}
}
&#13;