0

$_POST から次の配列があります。

array { 
["item"]=> array() { 
    [0]=> "pen" 
    [1]=> "pencil" 
    [2]=> "ruler" 

array { 
["note"]=> array() { 
    [0]=> "permanent" 
    [1]=> "not so permanent" 
    [2]=> "measures stuff" 

array { 
["cost"]=> array() { 
    [0]=> "67.99" 
    [1]=> ".15" 
    [2]=> "1.49"

単一の項目に結合したい、例えば

array { 
["line_items"]=> array() {

["0"]=> array() {
        [item]=> "pen" 
        [note]=> "permanent"
        [cost]=> "67.99"

["1"]=> array() {
        [item]=> "pencil" 
        [note]=> "not so permanent"
        [cost]=> ".15"      

["3"]=> array() {
        [item]=> "ruler" 
        [note]=> "measures stuff"
        [cost]=> "1.49" 

私はarray_merge、array_merge_recursive、array_combineを見てきましたが、これらの関数はすべて私が探していることをしません。for each ループと for ループをいくつか試してみましたが、うまくいきません。

さらに情報が必要な場合はお尋ねください。これはあまり明確ではありませんが、私が言うように、私の頭はこれを回避するのに苦労しています。

4

1 に答える 1

2

これには、自分で何かを考え出す必要があります。

$length = count($_POST['item']);
$items = array();
for ($i = 0; $i < $length; $i++) {
    $item = array();
    $item['item'] = $_POST['item'][$i];
    $item['note'] = $_POST['note'][$i];
    $item['cost'] = $_POST['cost'][$i];
    $items[] = $item;
}

var_dump($items);

必要なものが得られるはずです。エラーチェックや検証は一切行われていないことに注意してください。これを追加する必要があります。

編集:私の答えで愚かな間違いを犯しました-修正しました。

于 2013-02-07T13:36:57.043 に答える