我想用我的对象做一个 foreach 并在它结束时创建一个带有srcset.
Srcset 应该像这样格式化:
<img srcset="elva-fairy-320w.jpg 320w,
elva-fairy-480w.jpg 480w,
elva-fairy-800w.jpg 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="elva-fairy-800w.jpg" alt="Elva dressed as a fairy">
https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images
我的输出格式如下:
stdClass Object
(
[images0] => stdClass Object
(
[mediaManagerOrUrl] => 0
[mediaManagerImagesSubform] => stdClass Object
(
[image] => images/1600x400.jpg
[realSize] => 1600
[size] => 1200
[slot] => 1600
)
[urlImagesSubform] => stdClass Object
(
[url] =>
[realSize] =>
[size] =>
)
)
[images1] => stdClass Object
(
[mediaManagerOrUrl] => 0
[mediaManagerImagesSubform] => stdClass Object
(
[image] => images/1200x400.jpg
[realSize] => 1200
[size] => 1000
[slot] => 1000
)
[urlImagesSubform] => stdClass Object
(
[url] =>
[realSize] =>
[size] =>
)
)
最初我开始使用嵌套的 foreach 语句。然而,我随后意识到我实际上需要拉出所有 4 个图像,并且使用嵌套的 foreaches 一次只允许一个,例如,它正在连续处理所有图像部分。
然后我尝试使用这种语法。
foreach ($params->get('images') as $someImages) {
echo '<img srcset="' . $someImages->mediaManagerImagesSubform->image . " " . $someImages->mediaManagerImagesSubform->realSize . ',"
sizes="(max-width:' . $someImages->mediaManagerImagesSubform->size . ') ' . $someImages->mediaManagerImagesSubform->slot . ',
src="' . $defaultImage . '" alt="'. $altText . '">';
}
这是非常复杂的,没有奏效。谁能帮助我了解如何实现这一目标?我开始认为我需要以某种方式将数据触发到一个数组中,从而将它从嵌套语法中分离出来并在调用它之前将其完全放在首位。那会更明智吗?
为了使事情更加复杂,我想我需要做一个计数,以便我可以添加逗号,但不能添加到最后一个实例中。
当年话下