从php多维数组中只选择一个属性?

时间:2013-04-05 09:52:57

标签: php arrays select multidimensional-array

据说我有一个这样的数组:

$shop = array( array("name"=>"Tom", "level"=> 1.25 ),
               array("name"=>"Mike","level"=> 0.75 ),
               array("name"=>"John","level"=> 1.15 ) 
             ); 

如何创建一个包含所有名称值的数组,并且键是原始数组的位置。我知道我可以迭代,并放入另一个数组,但有任何功能吗?

很抱歉,如果我感到困惑。我想要的输出是:

array(0=>"Tom",1=>"Mike",2=>"John");

所以基本上选择在sql中做什么。

4 个答案:

答案 0 :(得分:5)

从PHP 5.3.0开始,您可以使用:

$result = array_map(
    function($x) {
        return $x['name'];
    }, $shop);

print_r($result);

在5.3.0之前,您可以使用create_function进行回调。

答案 1 :(得分:0)

$shop = array( array("name"=>"Tom", "level"=> 1.25 ),
               array("name"=>"Mike","level"=> 0.75 ),
               array("name"=>"John","level"=> 1.15 ) 
             );
$newArr = array();

foreach($shop as $key=>$val){
$newArr[$key] = $val['name'];
}
print_r($newArr);

答案 2 :(得分:0)

从php 5.5开始,您可以使用

$names = array_column($shop, 'name');

答案 3 :(得分:-2)

您可以使用foreach

<?php

$shop = array( array("name"=>"Tom", "level"=> 1.25 ),
               array("name"=>"Mike","level"=> 0.75 ),
               array("name"=>"John","level"=> 1.15 ) 
             ); 

$newar = array();
foreach($shop as $subarr){
    $newar[] = $subarr['name'];
}

print_r($newar);

?>