首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP只在发现超过一个值时才输出

问PHP只在发现超过一个值时才输出
EN

Stack Overflow用户
提问于 2014-03-11 08:54:52
回答 3查看 1.1K关注 0票数 0

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

我也想输出唯一的价值找到,或更多,如果有更多。我试着插入中断,但是它只会在找到的第一个值停止,停止寻找其他值.我怎么才能解决这个问题?

代码语言:javascript
复制
<?php 
    foreach ($_product->getAttributeText('attribute') as $attribute): 
        echo $attribute.' ';
    endforeach ;
?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-11 09:07:57

很可能发生的事情就是@anurupr在评论中提到的。你的警告被压制了吗?

尝试以下几点:

代码语言:javascript
复制
<?php
$mAttributeText = $_product->getAttributeText('attribute');
if (is_array($mAttributeText)) {
    foreach ($mAttributeText as $sAttribute) {
        echo $sAttribute . ' ';
    }
} else {
    echo $mAttributeText;
}
票数 2
EN

Stack Overflow用户

发布于 2014-03-11 09:06:56

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

此外,这将不会回答您的问题,但也许可以帮助您:您看函数implode吗?

代码语言:javascript
复制
echo implode(" ", $_product->getAttributeText('attribute'));
票数 1
EN

Stack Overflow用户

发布于 2014-03-11 09:12:14

一定要确保

代码语言:javascript
复制
$_product->getAttributeText('attribute')

返回一个数组。

可能是奇怪的语法?查看这个示例并尝试如下:foreach

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22320689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档