2016-02-19 189 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] 
    ); 
}