2013-07-17 46 views
1

基本上鍵 - >值,我有一個陣列,其中每個元素是一個鍵/值對的元素,如下:PHP:從兩個數組元素

[myArray] => Array 
     [0] => Array 
       [id] => 121 
       [name] => Value1 
     [1] => Array 
       [id] => 125 
       [name] => Value2 
     [2] => Array 
       [id] => 129 
       [name] => Value3 
       .... 

我想將其轉換爲:

[myArray] => Array   
     [121] => Value1 
     [125] => Value2 
     [129] => Value3 
     .... 

所以'id'元素成爲關鍵字,'name'元素成爲值。 PHP是否有內置的東西(或者有一個聰明的技巧)來做到這一點?我想,以避免明顯的foreach()循環,如果有清潔可用的東西...

+3

我不知道是否有一個內置的函數來處理這個任務,但即使有,它肯定使用某種循環結構來完成任務。一個簡單的foreach循環應該足夠了。這是你的實現中的問題嗎? – HartleySan

回答

5

PHP 5.5有一個array_column() function它可以爲你做這個,如果你幸運地運行了。爲早期版本的PHP提交的開發人員也是has a forwards-compatible version you can download

但是,您可以很容易地推出自己的產品,或者只需使用foreach循環即可滿足您的特定需求。

+0

不幸的是,我們正在5.3環境中運行,並且這種情況不會很快發生變化。 雖然,謝謝,array_column()正是我需要的=) – Malek

0

如果你有array_column可用,你可以這樣做:

array_column($myArray, 'name', 'id') 

我覺得foreach更好的選擇,雖然。

+0

爲什麼複雜的結合? 'array_column($ myArray,'name','id')'就足夠了。 – Ben

+0

啊。沒有意識到索引參數。尼斯。 –