我想用我的对象做一个 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 . '">';}这是非常复杂的,没有奏效。谁能帮助我了解如何实现这一目标?我开始认为我需要以某种方式将数据触发到一个数组中,从而将它从嵌套语法中分离出来并在调用它之前将其完全放在首位。那会更明智吗?为了使事情更加复杂,我想我需要做一个计数,以便我可以添加逗号,但不能添加到最后一个实例中。
1 回答
当年话下
TA贡献1890条经验 获得超9个赞
我的最终答案是使用两个不同的 foreach 语句$i,然后使用一个,然后使用我的变量的完整路径。
<?php
$i = 0;
echo '<img srcset="';
foreach ($images as $image) {
echo $image->mediaManagerImagesSubform->image . " " . $image->mediaManagerImagesSubform->realSize . "w";
echo ', ';
}
echo '" size="';
foreach ($images as $image) {
echo '(max-width: ';
echo $image->mediaManagerImagesSubform->size . 'px) ' . $image->mediaManagerImagesSubform->slot . "px";
echo ', ';
}
echo '" src="' . $defaultImage . '" alt="'. $altText . '">';
?>
- 1 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消