PHP使用通配符从数组打印多个值

PHP使用通配符从数组打印多个值,php,arrays,drupal,drupal-7,ubercart,Php,Arrays,Drupal,Drupal 7,Ubercart,我试图通过PHP从包含通配符的数组中打印多个值。我已经设法从这里的另一个问题中计算出了通配符元素,但我现在正努力打印来自多个实体的多个值。我使用的是(12271 stdClass对象是通配符,第一个stdClass对象是$order): 因此,下面的代码可以正常工作并正确打印出“MODEL1 1x” <?php $model = current((array)$order->products)->model; $qty = current((array)$order->p

我试图通过PHP从包含通配符的数组中打印多个值。我已经设法从这里的另一个问题中计算出了通配符元素,但我现在正努力打印来自多个实体的多个值。我使用的是(12271 stdClass对象是通配符,第一个stdClass对象是$order):

因此,下面的代码可以正常工作并正确打印出“MODEL1 1x”

<?php
$model = current((array)$order->products)->model;
$qty = current((array)$order->products)->qty;
print $model.' '.$qty.'x';
?>
我不知道如何打印多个对象,以便打印出:

“型号1 1x”和“型号2 2x”


任何帮助都将不胜感激。作为参考,我试图在Drupal 7中打印Ubercart订单中的值。谢谢

只需循环所有对象即可。为了简单起见,我将所有内容都保留为对象(而不是转换为数组),因为不需要
current()

如果您需要钥匙,如
12271
,则:

foreach($order->products as $key => $object) {
    echo $key;
    echo $object->model . ' ' . $object->qty . 'x';
}
也许更容易阅读:

echo "{$object->model} {$object->qty}x";

只需循环所有对象。为了简单起见,我将所有内容都保留为对象(而不是转换为数组),因为不需要
current()

如果您需要钥匙,如
12271
,则:

foreach($order->products as $key => $object) {
    echo $key;
    echo $object->model . ' ' . $object->qty . 'x';
}
也许更容易阅读:

echo "{$object->model} {$object->qty}x";

如果字段顺序是永久性的,则可以使用

foreach ($order->products as $product) {
    vprintf('%s %ux' . PHP_EOL, $product);
}
否则


如果字段顺序是永久性的,则可以使用

foreach ($order->products as $product) {
    vprintf('%s %ux' . PHP_EOL, $product);
}
否则


绝对明星,谢谢!我知道我需要在某处以某种形式使用foreach。。。我就是想不起来。谢谢你,太好了!绝对明星,谢谢!我知道我需要在某处以某种形式使用foreach。。。我就是想不起来。谢谢你,太好了!
foreach ($order->products as $p) {
    printf('%s %ux%s', $p->model, $p->qty, PHP_EOL);
}