簡體   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