2013-04-05 102 views
1

按說我有一個這樣的數組:從php多維數組中只選擇一個屬性?

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

如何使所有的名值和爲theri原始數組的位置鍵的數組。我知道我可以迭代,並放入另一個數組,但有沒有任何功能?

對不起,如果我很困惑。我期望的輸出將是:

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

因此,基本上什麼選擇在SQL中。

+0

你能顯示所需的輸出嗎? – 2013-04-05 09:56:36

+0

現在我明白了。處理答案。數組中的 – botenvouwer 2013-04-05 09:57:05

+0

我們不能有兩次相同的密鑰。 – 2013-04-05 09:57:07

回答

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

?> 
+0

您應該在發佈之前對其進行測試。 ^^此外,作者還說他們自己如何循環使用,並正在尋找替代解決方案。 – Jon 2013-04-05 10:07:32

+0

所有的罰款都是這樣的。我測試了Ps,現在它工作。 – botenvouwer 2013-04-05 10:08:19

+0

當然,它的確如此 - 它現在幾乎與Deepu的答案一樣,只是刪除密鑰。 ^^ – Jon 2013-04-05 10:13:37

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); 
+0

同我的答案爲什麼倒票!? – botenvouwer 2013-04-05 10:06:54

+0

@sirwilliam它與你的不一樣 - 例如,你不能通過'$ shop ['name']'循環,因爲該索引不存在。 – Jon 2013-04-05 10:09:14

+0

修正了天哪倒票投擲者! – botenvouwer 2013-04-05 10:13:40

5

由於PHP 5.3.0的,你可以這樣做:

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

print_r($result); 

5.3.0版本之前,您可以使用create_function回調。