2016-02-19 188 views
0

我試圖創建一個應該有$ _POST數組的ID和數量的多維數組。目前它似乎將每個數量都放入每個ID中的每個元素中。但是我希望它從每個數組中取出第一個元素,然後將它們一起添加到新數組中,等等。創建多維數組PHP

而應該是

ID 1 - Quantity 100 
ID 2 - Quantity 50 

但此刻我得到這個

array(16) { 
    [0]=> 
    array(2) { 
    ["id"]=> 
    string(1) "1" 
    ["quantity"]=> 
    string(2) "50" 
    } 
    [1]=> 
    array(2) { 
    ["id"]=> 
    string(1) "1" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [2]=> 
    array(2) { 
    ["id"]=> 
    string(1) "1" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [3]=> 
    array(2) { 
    ["id"]=> 
    string(1) "1" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [4]=> 
    array(2) { 
    ["id"]=> 
    string(2) "12" 
    ["quantity"]=> 
    string(2) "50" 
    } 
    [5]=> 
    array(2) { 
    ["id"]=> 
    string(2) "12" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [6]=> 
    array(2) { 
    ["id"]=> 
    string(2) "12" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [7]=> 
    array(2) { 
    ["id"]=> 
    string(2) "12" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [8]=> 
    array(2) { 
    ["id"]=> 
    string(1) "2" 
    ["quantity"]=> 
    string(2) "50" 
    } 
    [9]=> 
    array(2) { 
    ["id"]=> 
    string(1) "2" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [10]=> 
    array(2) { 
    ["id"]=> 
    string(1) "2" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [11]=> 
    array(2) { 
    ["id"]=> 
    string(1) "2" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [12]=> 
    array(2) { 
    ["id"]=> 
    string(1) "6" 
    ["quantity"]=> 
    string(2) "50" 
    } 
    [13]=> 
    array(2) { 
    ["id"]=> 
    string(1) "6" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [14]=> 
    array(2) { 
    ["id"]=> 
    string(1) "6" 
    ["quantity"]=> 
    string(3) "100" 
    } 
    [15]=> 
    array(2) { 
    ["id"]=> 
    string(1) "6" 
    ["quantity"]=> 
    string(3) "100" 
    } 
} 

這是我的PHP代碼。

foreach($_POST['sweetids'] as $id) { 

foreach($_POST['quantites'] as $quantity) { 

    $stock_array[] = array(
     "id"=> $id, 
     "quantity" => $quantity 
     ); 
} 

}

+0

您可以顯示期望的輸出是什麼? –

+0

從我看到的,你的數組正在按照它的工作。你想要得到什麼? –

+0

你也可以顯示POST數據嗎? –

回答

1

我覺得這是你想達到什麼目的:

foreach($_POST['sweetids'] as $key=>$id) { 

    $stock_array[] = array(
     "id"=> $id, 
     "quantity" => $_POST['quantities'][$key] 
     ); 
} 
0

你爲每個迭代$_POST['sweetids']$_POST['quantities']這可能不是你想要什麼。當您迭代兩者時,您的結果將爲sweetidsquantities的每個組合,而不是各自的

我猜你的意思更多的東西一樣:

// Assuming you already verified that $_POST['quantities'] and $_POST['sweetids'] exist 
// and that both of them have the same number of elements 
for ($i = 0, $len = count($_POST['sweetids']); $i < $len; $i++) { 
    $stock_array[] = array(
     'id' => $_POST['sweetids'][$i], 
     'quantity' => $_POST['quantities'][$i] 
    ); 
}