PHP 使用通配符打印数组中的多个值
PHP Print Multiple Values From An Array With A Wildcard
我正在尝试通过 PHP 从包含通配符的数组打印多个值。我已经设法从这里的另一个问题中计算出通配符元素,但我现在正在努力从多个实体打印多个值。我正在工作(12271 stdClass 对象是通配符,第一个 stdClass 对象是 $order):
stdClass Object
(
[products]
(
[12271] => stdClass Object
(
[model] => MODEL1
[qty] => 1
)
因此下面的代码可以正常工作并正确打印出来,'MODEL1 1x'
<?php
$model = current((array)$order->products)->model;
$qty = current((array)$order->products)->qty;
print $model.' '.$qty.'x';
?>
但是,如果存在多个对象,比如
stdClass Object
(
[products]
(
[12271] => stdClass Object
(
[model] => MODEL1
[qty] => 1
)
[45897] => stdClass Object
(
[model] => MODEL2
[qty] => 2
我不知道如何打印多个对象以便打印出来:
'MODEL1 1x' 和 'MODEL2 2x'
如有任何帮助,我们将不胜感激。作为参考,我正在尝试从 Drupal 7 中的 Ubercart 订单打印出值。谢谢
只需循环所有对象。为了简单起见,我只是将所有内容都保留为对象(而不是转换为数组),因为不需要 current()
:
foreach($order->products as $object) {
echo $object->model . ' ' . $object->qty . 'x';
}
如果您需要 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 $p) {
printf('%s %ux%s', $p->model, $p->qty, PHP_EOL);
}
我正在尝试通过 PHP 从包含通配符的数组打印多个值。我已经设法从这里的另一个问题中计算出通配符元素,但我现在正在努力从多个实体打印多个值。我正在工作(12271 stdClass 对象是通配符,第一个 stdClass 对象是 $order):
stdClass Object
(
[products]
(
[12271] => stdClass Object
(
[model] => MODEL1
[qty] => 1
)
因此下面的代码可以正常工作并正确打印出来,'MODEL1 1x'
<?php
$model = current((array)$order->products)->model;
$qty = current((array)$order->products)->qty;
print $model.' '.$qty.'x';
?>
但是,如果存在多个对象,比如
stdClass Object
(
[products]
(
[12271] => stdClass Object
(
[model] => MODEL1
[qty] => 1
)
[45897] => stdClass Object
(
[model] => MODEL2
[qty] => 2
我不知道如何打印多个对象以便打印出来:
'MODEL1 1x' 和 'MODEL2 2x'
如有任何帮助,我们将不胜感激。作为参考,我正在尝试从 Drupal 7 中的 Ubercart 订单打印出值。谢谢
只需循环所有对象。为了简单起见,我只是将所有内容都保留为对象(而不是转换为数组),因为不需要 current()
:
foreach($order->products as $object) {
echo $object->model . ' ' . $object->qty . 'x';
}
如果您需要 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 $p) {
printf('%s %ux%s', $p->model, $p->qty, PHP_EOL);
}