1

私はこのように配列をstdClassオブジェクトに変換しました、

stdClass Object
(
    [1339697186] => stdClass Object
        (
            [1403873546800880] => stdClass Object
                (
                    [quantity_request] => 2
                    [time_created] => 1339697190
                    [variant] => stdClass Object
                        (
                            [0] => 1403873546800887
                        )

                )

        )

    [1339697196] => stdClass Object
        (
            [1403873546800880] => stdClass Object
                (
                    [quantity_request] => 1
                    [time_created] => 1339697196
                    [variant] => stdClass Object
                        (
                            [0] => 1403889656952419
                        )

                )

        )

)

したがって、各アイテムを取得したい場合は、 2回[quantity_request]ループして、答えを取得します。

foreach ($items as $key => $item) 
{
    foreach ($item as $code => $item) 
    {
        echo $item->quantity_request;
    }
}

オブジェクト配列を2回ループせずに、以下のような答えを得る方法があるかどうか知りたいですか?

foreach ($items as $key => $item) 
{
    # Get the product code of this item.
    $code = $cart->search_code($key);

    echo $item->$code->quantity_request;
}

エラー:

致命的なエラー:stdClass型のオブジェクトを配列として使用できません...

オブジェクト配列のコンテンツからコード(サブキー)を取得するメソッドがクラスにあります。

public function search_code($key)
{
        # Get this item.
        $item = $this->content[$key];

        # Get this item's sub key, which is the code of the product.
        $subkeys = array_keys($item);

        # Get the first item from the array.
        $code = $subkeys[0];

        # Return the sub key which is the code of the product.
        return $code;
}
4

1 に答える 1

0

はい、私が知っていること:

foreach ($items as $key => $item) 
{
    $array = (object) array_shift($item);

    echo $array->quantity_request.'<br />';
}

私はあなたの質問に答えてくれることを願っています.100%よく理解できませんでした.

編集

<?php
$items = (object) array(
    1339697186 => array(1403873546800880 => array('quantity_request' => 2)),
    1339697187 => array(1403873546800880 => array('quantity_request' => 3)),
    1339697188 => array(1403873546800880 => array('quantity_request' => 4))
);

foreach ($items as $key => $item) 
{
    $array = (object) array_shift($item);

    echo $array->quantity_request.'<br />';
}
?>

// Results :
2<br />3<br />4<br />
于 2012-06-14T21:02:33.827 に答える