据说我有一个这样的数组:
$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中做什么。
答案 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);
?>