2015-02-24 75 views
-2

嗨,讓我們說,我有這個數組PHP數組值鍵

array(2) { 
    [0]=> 
    string(9) "name|a-z+" 
    [1]=> 
    string(7) "id|0-9+" 
} 

現在,我希望有一個新的陣列(或者如果可能的話一樣)是這樣的:

array(2) { 
    [name]=> 
    string(4) "a-z+" 
    [id]=> 
    string(4) "0-9+" 
} 

我覺得解決方案意味着爆炸和array_combine,但我不夠好,有人可以幫助我嗎? 在此先感謝。

回答

2
function convert_my_array($arr){ 
     $out = array(); 
     foreach($arr as $obj){ 
      $data = explode("|", $obj); 
      $out[$data[0]] = $data[1]; 
     } 
     return $out; 
    } 
+0

謝謝:),這個解決方案的工作原理 – Carondimonio 2015-02-24 20:49:46

2

在這裏使用名爲$ array的原始數組,循環遍歷它將值設置爲你想要的值。

$newarray = array(); 
foreach ($array as $key=>$val) { 
     list($one, $two) = explode('|', $val); 
     $newarray[$one] = $two; 
} 
+1

我相信你的意思是$陣列[$一個] = $二,雖然我會建議使用不同的變量,而不是$陣列,因爲新的條目將附加到現有的一個,你會得到兩個數組的組合。 – 2015-02-24 20:39:13

+0

@BlahArgh你是對的。我已經更新了我的答案。謝謝。 – Halfstop 2015-02-24 20:42:29

+1

然後它不會得到與OP想要的結果相同的結果。他們希望這些密鑰是$ 1的價值(在你的例子中)。至少這是我的理解。 - 你已經更新了你的答案。沒關係。 :) – 2015-02-24 20:43:10