如果数组返回至少一个值,PHP只回显一次变量

如果数组返回至少一个值,PHP只回显一次变量,php,Php,好的,我有一个从数组中的数据库返回的值,一些页面有3个值,一些页面有10个值,另一些页面有0个值 如果页面返回一个值,我希望标签出现一次,因此不在循环中。 label->$key_label='key references:' 如果页面没有任何$reference\u keys我不希望标签出现,因此$key\u label=false 因此,我想检查数组中的值,如果>=1:标签也会出现 我的代码似乎没有验证if(array($value=>1)和&!$key\u label)我猜我的语法错了,或

好的,我有一个从
数组中的数据库返回的值,一些页面有3个值,一些页面有10个值,另一些页面有0个值

如果页面返回一个值,我希望标签出现一次,因此不在循环中。 label->
$key_label='key references:'

如果页面没有任何
$reference\u keys
我不希望标签出现,因此
$key\u label=false

因此,我想检查
数组中的值,如果>=1:标签也会出现

我的代码似乎没有验证if(array($value=>1)和&!$key\u label)
我猜我的语法错了,或者我应该使用不同的函数

谢谢你的帮助

$key_label = false;
$key_label = '<span class="hl_reference"><u>key references:</u></span>';

foreach($reference_keys as $value)
{
    echo $value .'&nbsp;';
}

if(array($value => 1) && !$key_label) 
{
    $key_label = true; 
    echo $key_label;
};
-------------------------------更新-----------------------------

John C的最新代码似乎有效,但它在每页的第二个
$reference\u键之前显示一个“1”。但它只显示在带有
$reference\u键的页面上

$key_flag = false;
$key_label = '<span class="hl_reference"><u>key references:</u></span>';

foreach($reference_keys as $value)
{
if (!empty($value)) {
    if (!$key_flag) {
        echo $key_label;
        $key_label = true;
    }
    echo $value .'&nbsp;';
}
};
$key\u flag=false;
$key_label='key references:';
foreach($reference_key as$value)
{
如果(!空($value)){
如果(!$key_标志){
echo$key_标签;
$key_label=true;
}
回显$value.';
}
};
-------------------------------更新-----------------------------

约翰·C解决了这个问题。。工作代码如下!谢谢大家!->

$key_flag = false;
$key_label = '<span class="hl_reference"><u>key references:</u></span>';

foreach($reference_keys as $value)
{
if (!empty($value)) {
    if (!$key_flag) {
        echo $key_label;
        **$key_flag = true;**
    }
    echo $value .'&nbsp;';
}
};
$key\u flag=false;
$key_label='key references:';
foreach($reference_key as$value)
{
如果(!空($value)){
如果(!$key_标志){
echo$key_标签;
**$key_flag=true**
}
回显$value.';
}
};
该功能应能帮助您:

if(count($value) >= 1 && !$key_label)

您的代码似乎有一些逻辑问题,首先您正在覆盖
$key\u标签
内容,然后您在代码中使用的变量似乎不是数组。请尝试以下代码:

$key_flag  = false;
$key_label = '<span class="hl_reference"><u>key references:</u></span>';

foreach( $reference_keys as $value )
{
    echo $value .'&nbsp;';
}

if( count( $reference_keys ) >= 1 && ! $key_label )
{
    $key_flag = true; 
    echo $key_label;
};
$key\u flag=false;
$key_label='key references:';
foreach($reference_key as$value)
{
回显$value.';
}
如果(计数($reference_key)>=1&!$key_标签)
{
$key_flag=true;
echo$key_标签;
};
或者,您可以使用以下更好的解决方案:

if( is_array($reference_keys) && count($reference_keys) > 0 )
{
    echo '<span class="hl_reference"><u>key references:</u></span>';

    foreach( $reference_keys as $value )
        echo $value .'&nbsp;';
}
if(is_数组($reference_键)&&count($reference_键)>0)
{
回应“关键参考文献:”;
foreach($reference_key as$value)
回显$value.';
}
编辑1

if( is_array($reference_keys) && count($reference_keys) > 0 )
{
    echo '<span class="hl_reference"><u>key references:</u></span>';

    foreach($reference_keys as $value)
        echo $value .'&nbsp;';
}
if(is_数组($reference_键)&&count($reference_键)>0)
{
回应“关键参考文献:”;
foreach($reference_key as$value)
回显$value.';
}

如果我读对了,您希望显示
span
如果
$reference\u key
数组中有值,然后循环显示数组中的值

为此,您可以执行以下操作:

if(!empty($reference\u keys)&&count($reference\u keys)>0){
回应“关键参考文献:”;
foreach($reference_key as$value)
{
回显$value.';
}
}
编辑如果
$reference\u keys
数组中有空值,则
计数将返回大于0,但不会显示任何键。如果是这种情况,此代码将解决:

$key_flag = false;
$key_label = '<span class="hl_reference"><u>key references:</u></span>';

foreach($reference_keys as $value)
{
    if (!empty($value)) {
        if (!$key_flag) {
            echo $key_label;
            $key_flag = true;
        }
        echo $value .'&nbsp;';
    }
}
$key\u flag=false;
$key_label='key references:';
foreach($reference_key as$value)
{
如果(!空($value)){
如果(!$key_标志){
echo$key_标签;
$key_flag=true;
}
回显$value.';
}
}

嘿,火箭,我累了
如果(count($value>=1)
它不起作用了…PHP手册让我很困惑…你似乎在用$key\u标签做两件事。你能告诉我们数组是什么样子吗?我假设$reference\u keys就是有问题的数组吗?1.你的语法是(几乎是)恶心。$key\u标签没有正确的值。2.你能给我们看一下你的数组吗?我的
array
是从数据库返回的
$reference\u keys=array();
@JohnC是的,你的假设是正确的
$value=array(0=>'data1',1=>'data2');
这再清楚不过了;)晚安,谢谢,但那没有做到。。结果与我以前的代码相同。马上查看我的更新帖子…Marcio,第二个代码总是显示标签->即使在没有键的页面上。。没有bueno..当我将
>1
更改为
>=1
时,它会显示在所有页面上-包括那些没有ref键的页面…@FabioAnselmo,我认为您的变量存在一些问题。什么类型的数组
$reference\u keys
接收?
TEXT
MYSQL
数据库表键入此代码始终显示标签->即使在没有键的页面上也是如此(@FabioAnselmo-更改为与新代码匹配,使用fix以便您检查
count()
用于
$reference\u key
变量。对于带有1个ref\u key链接的页面不显示。另外,
span
需要在
$value
@FabioAnselmo之前显示-好吧,可能数组中有空值,新代码可以解决发布的问题。嘿@John C你上一个代码在那里几乎可以工作98%p、 在显示第二个链接之前,它会抛出一个“1”。。。
$key_flag = false;
$key_label = '<span class="hl_reference"><u>key references:</u></span>';

foreach($reference_keys as $value)
{
    if (!empty($value)) {
        if (!$key_flag) {
            echo $key_label;
            $key_flag = true;
        }
        echo $value .'&nbsp;';
    }
}