为了账号安全,请及时绑定邮箱和手机立即绑定

需要重复的复杂 nexted foreach

需要重复的复杂 nexted foreach

PHP
慕桂英546537 2021-12-03 19:11:22
我想用我的对象做一个 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 . '">';

?>


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信