1

MyDBは、配列を含むオブジェクトの配列を返します。

Var_dump

array (size=2)
  0 => 
    object(stdClass)[22]
      public 'customer_id' => string '10' (length=2)
      public 'cart' => string 'a:1:{s:32:"f9bb1d342b1c2a0bfe982ef405369ec0";a:9:{s:5:"rowid";s:32:"f9bb1d342b1c2a0bfe982ef405369ec0";s:2:"id";s:9:"101_30524";s:3:"qty";s:1:"1";s:5:"price";s:5:"104.5";s:4:"name";s:13:"Business Card";s:5:"image";s:18:"business-cards.gif";s:4:"ship";a:3:{s:6:"Ground";d:9.730000000000000426325641456060111522674560546875;s:11:"2nd Day Air";d:18.53999999999999914734871708787977695465087890625;s:9:"Overnight";d:26.269999999999999573674358543939888477325439453125;}s:7:"options";a:2:{s:17:"Print Description";s:16'... (length=761)
      public 'shipping_type' => string 'Ground' (length=6)
      public 'shipping_cost' => string '9.73' (length=4)
      public 'order_sub_total' => string '104.50' (length=6)
      public 'order_total' => string '114.23' (length=6)
      public 'id' => string '28' (length=2)
      public 'timestamp' => string '2012-10-12 20:10:30' (length=19)
  1 => 
    object(stdClass)[23]
      public 'customer_id' => string '10' (length=2)
      public 'cart' => string 'a:2:{s:32:"22d2d3d8584f6e0819c4e46af4d2fda2";a:9:{s:5:"rowid";s:32:"22d2d3d8584f6e0819c4e46af4d2fda2";s:2:"id";s:9:"101_94980";s:3:"qty";s:1:"1";s:5:"price";s:2:"64";s:4:"name";s:13:"Business Card";s:5:"image";s:18:"business-cards.gif";s:4:"ship";a:3:{s:6:"Ground";d:9.730000000000000426325641456060111522674560546875;s:11:"2nd Day Air";d:18.53999999999999914734871708787977695465087890625;s:9:"Overnight";d:26.269999999999999573674358543939888477325439453125;}s:7:"options";a:2:{s:17:"Print Description";s:164:"'... (length=1506)
      public 'shipping_type' => string 'Ground' (length=6)
      public 'shipping_cost' => string '19.46' (length=5)
      public 'order_sub_total' => string '148.25' (length=6)
      public 'order_total' => string '167.71' (length=6)
      public 'id' => string '29' (length=2)
      public 'timestamp' => string '2012-10-12 20:29:10' (length=19)

cart多次元配列であることに注意してください。これらのオブジェクトと配列をループしてテーブルを作成するにはどうすればよいですか?

<?php foreach($all_orders as $key => $val) : ?>

    <?php echo $key; ?>  <?php echo $val; ?>

<?php endforeach; ?>

これにより、次のエラーが発生します: PHP エラーが発生しました 重大度: 4096 メッセージ: クラス stdClass のオブジェクトを文字列に変換できませんでした

4

4 に答える 4

2

あなたが試すことができます

echo "<pre>";
foreach ( $cart as  $all_orders ) {
    foreach ( $all_orders as $key => $value ) {
        echo $key, " = ", $value, PHP_EOL;
    }
}
于 2012-10-13T02:25:05.363 に答える
2

演算子stdClassを使用してオブジェクトのプロパティにアクセスします。->

<?php foreach($all_orders as $key => $val) : ?>
Customer ID <?php echo $val->customer_id ?> has a total of <?php echo $val->order_total ?><br />
<?php endforeach ?>
于 2012-10-13T02:28:02.587 に答える
0

私はMVCでPHPのArrayObjectを使用しています:
us3.php.net/manual/en/class.arrayobject.php

        $arrayobject = new ArrayObject($dataRows);
        for ($iterator = $arrayobject->getIterator(); $iterator->valid(); $iterator->next()) {

        }
于 2012-10-13T03:16:04.430 に答える
0

PHP 5 では、ループを使用してオブジェクトのパブリックプロパティを反復処理できます。foreach

詳細 (およびコード例): http://php.net/manual/en/language.oop5.iterations.php

于 2012-10-13T02:26:45.443 に答える