Php 如何仅输出子阵列的值?
我有一个数组,我想输出一些数据:Php 如何仅输出子阵列的值?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个数组,我想输出一些数据: array(4) { [123]=> array(2) { ["color"]=> string(3) "red" ["name"]=> string(5) "harry" } [345]=> array(2) { ["color"]=> string(4) "blue" ["name"]=> string(4) "fred" } ["
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>";
}
}
echo“这些都是颜色:
”;
foreach($key=>$val的属性){
如果($key!=“植物”和$key!=“动物”){
echo$val['color']。“
”;
}
}
echo“这就是动物:
”;
foreach($key=>$val的属性){
如果($key==“animal”){
echo$val.“
”;
}
}
echo“这就是植物:
”;
foreach($key=>$val的属性){
如果($key==“工厂”){
echo$val.“
”;
}
}
它给了我想要的结果
这些都是颜色:
红色的
蓝色的
这是动物:
马
这是植物:
树
……但我想也许你知道一个更简单的解决办法。我确信只与子数组对话是可能的,但我找不到一种方法。由于PHP5.5,您可以使用数组列:
$color = array_column($properties, 'color');
从php 5.3开始,您可以将array_map与匿名函数一起使用,如下所示:
$color = array_map(function ($ar) {return $ar['color'];}, $properties);
print_r($color);
exit;
我认为,在foreach中使用Switch将有助于解决这个问题
foreach($key=>$val的属性){
交换机($key){
案例“”:
打破
}
}
这是一个对象,请尝试此$val->color代码>@jay这不是一个对象等一下我运行这个代码然后说