我需要遍历一个可以有一个或多个值的数组(在这种情况下是一些属性)。我的问题是,只有在找到多个值时才会输出内容。如果数组中只有一个值,则根本不输出任何值。
我想输出找到的唯一值,或者更多(如果有的话)。我尝试插入break,但之后它只会停在找到的第一个值,停止查找其他值...我该如何解决这个问题?
<?php
foreach ($_product->getAttributeText('attribute') as $attribute):
echo $attribute.' ';
endforeach ;
?>
答案 0 :(得分:2)
@anurupr在评论中提到的可能是正在发生的事情。你的警告被抑制了吗?
尝试以下方法:
<?php
$mAttributeText = $_product->getAttributeText('attribute');
if (is_array($mAttributeText)) {
foreach ($mAttributeText as $sAttribute) {
echo $sAttribute . ' ';
}
} else {
echo $mAttributeText;
}
答案 1 :(得分:1)
如果只找到一个属性,则getAttributeText
方法可能无法返回数组(只有一个元素的数组上的foreach
应该正常工作)
此外,这不会回答你的问题,但可能会帮助你:你看看函数implode
吗?
echo implode(" ", $_product->getAttributeText('attribute'));
答案 2 :(得分:1)
确保
$_product->getAttributeText('attribute')
返回一个数组。
可能有奇怪的语法?看看这个例子并尝试这样: http://www.w3schools.com/php/showphp.asp?filename=demo_loop_foreach