3

foreach ループを実行すると、3 つのリスト項目の空のリストが表示されるだけです。

配列を印刷すると、次のようになります->

Array
(
    [1] => Array
        (
            [id] => 10
            [orderinfo] => Array
            [userid] => 210
            [date] => 2013-06-20 13:46:27
        )

    [2] => Array
        (
            [id] => 18
            [orderinfo] => helo
            [userid] => 210
            [date] => 2013-06-20 15:04:58
        )

    [3] => Array
        (
            [id] => 19
            [orderinfo] => {"order":[{"id":"2","name":"Basil Cress","qty":"1"},{"id":"4","name":"Sakura Mix","qty":"1"},{"id":"6","name":"Beetroot Shoots","qty":2},{"id":"28","name":"Celery","qty":2},{"id":"24","name":"Orange Capsicums","qty":"1"}]}
            [userid] => 210
            [date] => 2013-06-20 15:06:46
        )

)

これまでの私のコード..

foreach ($orderdata as $item) {

    $orderinfo = json_decode($item->orderinfo, true);

    $orderitem[] = array(
        'date' => $item->date,
        'productname' => $orderinfo['name'],
        'productqty' => $orderinfo['qty'],
    );              
}


echo "<pre>";
print_r($orderdata);
echo "</pre>";
?>



<?php foreach ($orderitem as $orderitems) {   ?>
  <li> 
    <?php echo  $orderitems['date']; ?>
  </li>
<?php }; ?>
4

3 に答える 3

2

このようにループの前に配列を宣言してみてください。あなたはすでにこれをやっていますか?

$orderitem = array();
foreach ($orderdata as $item) {

    $orderinfo = json_decode($item->orderinfo, true);

    $orderitem[] = array(
        'date' => $item->date,
        'productname' => $orderinfo['name'],
        'productqty' => $orderinfo['qty'],
    );              
}

次のように、配列を別の方法で設定することもできます。

array_push($orderitem,array(
            'date' => $item->date,
            'productname' => $orderinfo['name'],
            'productqty' => $orderinfo['qty'],
        ));
于 2013-06-20T18:23:11.067 に答える
1

の JSON の構造を見てください$orderInfo。ネストされた配列です。だから$orderInfo['name']存在しない。$orderInfo[0]['name']またはその他の数値インデックスでデータを埋めます。

これは、連想配列の配列にデコードされるオブジェクトの配列です。名前を取得するには、もう 1 レベル下に移動する必要があります。

[
    {"id":"2","name":"Basil Cress","qty":"1"},
    {"id":"4","name":"Sakura Mix","qty":"1"},
    {"id":"6","name":"Beetroot Shoots","qty":2},
    {"id":"28","name":"Celery","qty":2},
    {"id":"24","name":"Orange Capsicums","qty":"1"}
]
于 2013-06-20T18:03:37.530 に答える
1

それはちょうどあなたのcssでしょうか?? 背景色と同じ文字色?私はそれがばかげていることを知っていますが、誰が知っていますか...

print_r($orderitem); を試してください。$orderdata で行ったのと同じように

于 2013-06-20T18:09:54.673 に答える