Я массив превращается в 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
)
)
)
)
Так что, если я хочу получить [quantity_request]
каждого пункта, я петля дважды, чтобы получить ответ,
foreach ($items as $key => $item)
{
foreach ($item as $code => $item)
{
echo $item->quantity_request;
}
}
Я хочу знать, есть ли способ получить ответ следующим образом: без цикл массива объектов дважды?
foreach ($items as $key => $item)
{
# Get the product code of this item.
$code = $cart->search_code($key);
echo $item->$code->quantity_request;
}
ошибка:
Fatal error: Cannot use object of type stdClass as array in...
У меня есть метод в классе, чтобы получить код (ключ) к югу от содержимого массива объектов.
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;
}
Примечание: ваше использование двух переменных $ элементов в двойном Еогеасп собирается вызвать проблемы. – ben
@ben: Я не уверен, что это вызовет проблемы, я думаю, что затенение будет выполняться по назначению. Но я согласен с тем, что это смущает/неясно. – jedwards