2013-02-15 130 views
0

我有這樣的多維數組:創建使用多維數組共享值的新數組值

array { 
    [0]=> 
    array(2) { 
    [「foo」]=> 
    int(138) 
    [「bar」]=> 
    int(127) 
    } 
    [1]=> 
    array(2) { 
    [「foo」]=> 
    int(138) 
    [「bar」]=> 
    int(47) 
    } 
    [2]=> 
    array(2) { 
    [「foo」]=> 
    int(138) 
    [「bar」]=> 
    int(13) 
    } 
    [3]=> 
    array(2) { 
    [「foo」]=> 
    int(138) 
    [「bar」]=> 
    int(56) 
    } 
    [4]=> 
    array(2) { 
    [「foo」]=> 
    int(154) 
    [「bar」]=> 
    int(77) 
    } 
    [5]=> 
    array(2) { 
    [「foo」]=> 
    int(154) 
    [「bar」]=> 
    int(69) 
    } 
    [6]=> 
    array(2) { 
    [「foo」]=> 
    int(154) 
    [「bar」]=> 
    int(70) 
    } 
    [7]=> 
    array(2) { 
    [「foo」]=> 
    int(154) 
    [「bar」]=> 
    int(75) 

foo的每一個值是一樣的,我想創建一個「富」是$鍵的新陣而陣列中的每個及其相應的「酒吧」的值(即:。

array[138] { 
    127 
    47 
    13 
    56 
} 

任何幫助將是真棒,謝謝

+1

你可以使用foreach使用一些邏輯:) – 2013-02-15 21:12:14

+0

我是新來的... ^如? – JohnSchaum 2013-02-15 23:17:02

回答

0

好吧,這只是通過數組循環我真的不明白哪裏是問題。

$new =array(); 
for($i=0; $i<count($array); $i++) { 
    if(!isset($new[$array[$i]["foo"]])) //Check for existence of "foo" stack 
     $new[$array[$i]["foo"]] = array(); //Create new array, where "bar"s will be put in 
    $new[$array[$i]["foo"]][] = $array[$i]["bar"]; //Put "bar" in corresponding "foo" stack 
} 

你甚至可以在這種情況下使用foreach,我避免它,使代碼示例友好的改變。
由於OP聲明代碼不起作用(這是lie),I made an example

+0

^沒有工作 – JohnSchaum 2013-02-15 23:15:53

+0

確實有效。你甚至懶得檢查你的代碼,而不是你說謊。我現在很後悔,甚至試圖幫助你。 [Here](http://u8.8u.cz//crap/arraylooper1.php)就是它的證明。它使用了和我在這裏發佈的相同的代碼。 – 2013-02-15 23:32:34

+0

放鬆,我不撒謊,我用這個,它不起作用。雙重和三重檢查它。我嘗試關閉下面一行之後的if語句,但這不起作用。我嘗試關閉它後,下面兩行,沒有工作。我很感激幫助,但是我只爲每個'foo'獲得一個'bar'值。 – JohnSchaum 2013-02-16 00:06:17