Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ACF多次返回复选框值_Php_Wordpress_Advanced Custom Fields - Fatal编程技术网

Php ACF多次返回复选框值

Php ACF多次返回复选框值,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,在ACF的帮助下,我在wordpress上建立了一个网站,但我遇到了一个问题,我似乎无法解决 我有一个名为“公文包”的重复字段,其中有一个复选框字段,有3个选项。 我使用它们是为了能够将类添加到div中进行过滤,它工作得很好,但是当我想将选项值显示到我的网页列表中时,它会多次给我相同的值 例如,我添加了5个div,其中3个选中了“digi”值,所以当我调用复选框值时,我会得到列表元素“digi”3次。我真的只想在我的网站上显示3种不同的选择 我的代码: <?php if( have_ro

在ACF的帮助下,我在wordpress上建立了一个网站,但我遇到了一个问题,我似乎无法解决

我有一个名为“公文包”的重复字段,其中有一个复选框字段,有3个选项。 我使用它们是为了能够将类添加到div中进行过滤,它工作得很好,但是当我想将选项值显示到我的网页列表中时,它会多次给我相同的值

例如,我添加了5个div,其中3个选中了“digi”值,所以当我调用复选框值时,我会得到列表元素“digi”3次。我真的只想在我的网站上显示3种不同的选择

我的代码:

<?php

if( have_rows('portfolio') ):
 while ( have_rows('portfolio') ) : the_row();
   $class = get_sub_field('portfolio_img_class');



 foreach( $class as $value ): ?>
    <li><?php echo $value; ?></li>
 <?php endforeach;               


 endwhile;
 else :
   echo "FFS";
 endif;
?>

  • 我用于为div提供类的其他代码:

    <?php if( have_rows('portfolio') ): ?>
    
                    <section class="work">
    
                    <?php while( have_rows('portfolio') ): the_row(); 
    
                        $image = get_sub_field('portfolio_img');
                        $text = get_sub_field('portfolio_img_text');
                        $link = get_sub_field('portfolio_img_link');
                        $class = get_sub_field('portfolio_img_class');
    
                        ?>
    
                        <div class="item-work item-work-portfolio 
    
                                    <?php 
                                    foreach ( $class as $value ) {  echo $value . " ";  } ?> 
    
                                    "> 
    
                            <a href="<?php echo $link; ?>">
                                <img src="<?php echo $image; ?>"/>
                                <div class="work-overlay">
                                    <h1 class="work-overlay-title"><?php echo $text; ?></h1>
                                </div>
                            </a>
                        </div> 
    
                    <?php endwhile; ?>
    
                    </section>
    
                <?php endif; ?>
    
    
    
    因此,您可以将所有值存储在单个数组中,然后在此单个数组上使用另一个循环,即
    array\u unique()
    函数删除重复值,以及
    array\u values()
    函数重新为数组编制索引。然后输出唯一值:

    <?
    $allValues = array();
    if (have_rows('portfolio')):
        while (have_rows('portfolio')) : the_row();
            $class = get_sub_field('portfolio_img_class');
            foreach ($class as $value):
                $allValues[] = $value;
            endforeach;
        endwhile;
    else:
        // do nothing
    endif;
    $uniqueValues = array_values(array_unique($allValues));
    foreach ($uniqueValues as $value):
        echo $value . ' ';
    endforeach;
    

    这似乎仍然不起作用。输出仍然相同。请发布
    print\r($class)的输出数组([0]=digi[1]=disain)数组([0]=digi[1]=disain)数组([0]=digi[1]=disain)数组([0]=digi[1]=disain)数组([0]=digi[1]=disain[2]=sotsiaalmeedia)
    并且您希望输出仅为
  • digi
  • disain
  • sotsiaalmeedia
  • ?现在它就像一个魔咒一样工作。非常感谢你!你真是个救命恩人
    <?
    $allValues = array();
    if (have_rows('portfolio')):
        while (have_rows('portfolio')) : the_row();
            $class = get_sub_field('portfolio_img_class');
            foreach ($class as $value):
                $allValues[] = $value;
            endforeach;
        endwhile;
    else:
        // do nothing
    endif;
    $uniqueValues = array_values(array_unique($allValues));
    foreach ($uniqueValues as $value):
        echo $value . ' ';
    endforeach;