[英]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.