繁体   English   中英

PHP Array foreach仅在找到多个值时输出

[英]PHP Array foreach only outputs when more than 1 value is found

我需要遍历一个可以有一个或多个值(在这种情况下为某些属性)的数组。 我的问题是,仅当找到多个值时,它才会输出某些内容。 如果数组中只有一个值,则根本不输出任何值。

我还希望输出找到的唯一值,或者更多。 我尝试插入break,但是它只会在找到的第一个值处停止,停止寻找其他值...如何解决此问题?

<?php 
    foreach ($_product->getAttributeText('attribute') as $attribute): 
        echo $attribute.' ';
    endforeach ;
?>

@anurupr在评论中提到的内容可能正在发生。 您是否取消了警告?

请尝试以下操作:

<?php
$mAttributeText = $_product->getAttributeText('attribute');
if (is_array($mAttributeText)) {
    foreach ($mAttributeText as $sAttribute) {
        echo $sAttribute . ' ';
    }
} else {
    echo $mAttributeText;
}

如果仅找到一个属性,则getAttributeText方法可能不会返回数组(仅对一个元素的数组上的foreach应该起作用)

而且,这将不会回答您的问题,但可能会帮助您:您看功能是否implode

echo implode(" ", $_product->getAttributeText('attribute'));

确保

$_product->getAttributeText('attribute')

返回一个数组。

也许语法很奇怪? 查看此示例,然后尝试如下操作: http : //www.w3schools.com/php/showphp.asp?filename=demo_loop_foreach

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM