Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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_Select_Multidimensional Array - Fatal编程技术网

是否仅从php多维数组中选择一个属性?

是否仅从php多维数组中选择一个属性?,php,arrays,select,multidimensional-array,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 ) ); 如何使用所有名称值和键作为原始数组的位置创建数组。我知道我可以迭代,然后放入另一

假设我有这样一个数组:

$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");

因此,select在sql中的基本功能是什么。

您可以使用
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);

?>

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

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

print_r($result);

5.3.0之前的版本可以用于回调。

由于PHP5.5,您可以使用

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

你能显示想要的输出吗?啊,现在我知道了。处理answer.com可能只是您可以使用
array\u walk
,但这也会在数组中进行迭代。不管你是手动操作还是使用函数,无论你选择什么,你都会得到大致相同的计算值(好吧,如果你自己有效地遍历数组,也就是;)@StasGrin
array\u keys
将给出
(0,1,2等)
,因为数组的键只是索引,其中,
将是您要修改的数组。您可能应该在发布它们之前进行测试。^此外,作者还说,他们正在寻找一种新的循环方法,并且正在寻找另一种解决方案。当然,这与Deepu现在的答案几乎相同,只是去掉了钥匙^^我还在努力。你不是有时候会犯错误吗!?PS我是第一个回答的人我只是犯了一个小错误。现在就开枪吧。现在答案很好,我坚持-3都很好。你赢了!!!这不是第一个回答问题,而是第一个用实际可用的代码回答问题。^^这不是一个真正的竞赛,但是你发布的第一个答案是人们首先看到的,你的第一个例子导致了错误,你花了8分钟来更新;这意味着人们在这个话题上看到了一个8分钟内无法使用的答案,而这个答案似乎得到了一些关注。^^(我将改变我对答案的投票,因为你最终得到了正确答案-但第一印象才是答案的关键。^^^@sirwilliam它与你的不同-例如,你不能循环通过
$shop['name']
,因为该索引不存在。
$names = array_column($shop, 'name');