首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php foreach循环中满足条件时向左或向右输出

在php foreach循环中满足条件时向左或向右输出
EN

Stack Overflow用户
提问于 2019-05-07 22:01:12
回答 1查看 369关注 0票数 0

我有一个具有两个选项的foreach循环。

“图像和文本”或“纯文本”

当用户选择“图像和文本”时,部分需要交替图像左和图像右。我可以使用css :nth-of-type实现这一点。但只有当图像和文本块是连续的时,这才有效。

我需要做的是检查用户选择了哪种类型的部分,如果是“图像和文本”,则添加一个类来定义布局,并为下一个也是“图像和文本”的部分做相反的事情。

迷惑了?我也是。为了更好地理解,这里有一些html展示了这些部分应该如何流动:

代码语言:javascript
复制
<div class="image-text left"></div>
<div class="text"></div>
<div class="image-text right"></div>

这是我当前的PHP循环:

代码语言:javascript
复制
<?php  
global $prefix;
$career_profiles = rwmb_meta("career_profiles");

foreach ( $career_profiles as $profile ) :

    $career_section = isset( $profile["{$prefix}career_section"] ) ? $profile["{$prefix}career_section"] : '';
    /**
     * Careers section can be image and text OR text
     * @var [type]
     */
    $career_section_class = ( $career_section == 'image_text' ) ? 'image-text' : 'text';

    $career_image = isset( $profile["{$prefix}career_image"] ) ? $profile["{$prefix}career_image"] : array();
    foreach ( $career_image as $ci ) :
        $photo = RWMB_Image_Field::file_info( $ci, array( 'size' => 'careers_photo' ) );
    endforeach;

    $career_name = isset( $profile["{$prefix}career_name"] ) ? $profile["{$prefix}career_name"] : '';
    $career_name_id = clean($career_name);
    $career_introduction = isset( $profile["{$prefix}career_introduction"] ) ? $profile["{$prefix}career_introduction"] : '';
?>

    <div class="<?php echo $career_section_class; ?> clearfix">
        <?php if ($photo) : ?>
            <div class="image b-lazy" data-src="<?php echo $photo['url']; ?>"></div><!-- /.image -->
        <?php endif; ?>
        <div class="profile clearfix">
            <div class="profile-wrapper font22 clearfix">
                <?php if ($career_name) : ?>
                    <h2 class="font34"><?php echo $career_name; ?></h2>
                <?php endif; ?>
                <?php echo wpautop($career_introduction); ?>
            </div><!-- /.profile-wrapper -->
        </div><!-- /.profile -->
    </div><!-- /.career-profiles_profile -->



<?php
endforeach; // foreach ( $career_profiles as $section ) :
?>

我的一个想法是检查当前循环是否$career_section_class == 'image-text',然后添加leftright类,但我如何检查添加定位类的顺序?

EN

回答 1

Stack Overflow用户

发布于 2019-05-07 22:36:51

感谢@Barmar@04FS在解决这个问题上的帮助。

对于这里的其他任何人来说,解决方案是:

代码语言:javascript
复制
$align = "";
foreach ( $career_profiles as $profile ) :


    $career_section = isset( $profile["{$prefix}career_section"] ) ? $profile["{$prefix}career_section"] : '';
    $career_section_class = ( $career_section == 'image_text' ) ? 'image-text' : 'text';

    /**
     * Alternate the class if the section == image_text
     */
    if ($career_section_class == 'image_text') {
        $align = $align == "left" ? "right" : "left";
    }


endforeach; // foreach ( $career_profiles as $section ) :
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56024370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档