Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何仅输出子阵列的值?_Php_Arrays_Multidimensional Array - Fatal编程技术网

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这不是一个对象等一下我运行这个代码然后说