PHP,在foreach循环中只有一次Echo

时间:2015-04-14 12:55:20

标签: php arrays loops for-loop foreach

我有一个数组,然后我有一个脚本获取我正在浏览的类别(使用wordpress)并将其放入$ category变量。

所以我测试我浏览它的类别是否等于$ array键然后我粘贴了一些文本

$array = array ('key' => 'value', ... )

//...
// a script who gets the category i'm browsing and store it in the $category variable    
//...
/* starting the foreach loop */
foreach( $array as $key => $value) {
            if ($category == $key) {
                echo "some $value here";    
            } elseif ($category !== $key) {
                echo "nothing"; 
            }

问题是,每次$ category不等于数组中每个元素的$ key时,此循环都会回显“无”

所以如果我有20个键=>数组中的值此循环粘贴一次“some $ value here”和19次“nothing”

有一种方法只能回应“没有”一次吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用array_key_exists代替foreach循环:

if (array_key_exists($category, $array)) {
    echo $array[$category];
} else {
    echo 'nothing';
}

答案 1 :(得分:0)

    $i=0;
    foreach( $array as $key => $value) {
$i++;
                if ($category == $key) {
                    echo "some $value here";    
                } elseif($category !== $key)
                {
                  if($i<=1)
    {
                    echo "nothing"; 
    }
    else{}
                }

答案 2 :(得分:0)

尝试 -

$i = 1;
foreach( $array as $key => $value) {
            if ($category == $key) {
                echo "some $value here";    
            } elseif ($category !== $key) {
                $i++; 
            }
}
if (count($array) == $i) {
    echo "nothing";
}