0

好的,所以我从数据库中返回的值ARRAY有些页面有 3 个值,有些页面有 10 个,而其他页面有 0 个。

如果页面返回一个值,我希望标签出现一次,因此不在循环中。标签->$key_label = '<span class="hl_reference"><u>key references:</u></span>';

如果页面没有任何$reference_keys我不希望标签出现,因此$key_label = false;

所以我想检查ARRAY一个值,如果 >= 1:标签也会出现。

我的代码似乎没有验证if(array($value => 1) && !$key_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;
};

- - - - - - - - - - - - - - - -更新 - - - - - - - - - ------------

此代码似乎仅适用于只有 1 个 reference_key 的页面......奇怪的是count is set to >= 1

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

foreach($reference_keys as $value)
{
   echo $value .'&nbsp;';
}
$result = count($value);
if ($result > 1)
{
  echo $key_label;
}   

- - - - - - - - - - - - - - - -更新 - - - - - - - - - ------------

约翰 C 的最新代码似乎可以工作,但它$reference_key在每页的第二个之前显示一个“1”。但它只显示在页面上$reference_key

$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;';
}
};

- - - - - - - - - - - - - - - -更新 - - - - - - - - - ------------

John 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;';
}
};
4

3 回答 3

1

如果我没看错,您想显示数组中span是否有值$reference_keys,然后循环并显示数组中的值。

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

if (!empty($reference_keys) && count($reference_keys) > 0) {
    echo '<span class="hl_reference"><u>key references:</u></span>';
    foreach($reference_keys as $value)
    {
       echo $value .'&nbsp;';
    }
}

编辑如果$reference_keys数组中有空值,则count返回大于 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;';
    }
}
于 2012-07-12T23:28:22.103 回答
0

计数功能应该可以帮助您:

if(count($value) >= 1 && !$key_label)
于 2012-07-12T23:14:30.617 回答
0

您的代码似乎存在一些逻辑问题,首先您要覆盖$key_label内容,然后在代码下方,您在似乎不是数组的变量中使用count() 。试试这样的代码:

$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;
};

或者您可以使用更好的解决方案,如下所示:

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;';
}

编辑 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;';
}
于 2012-07-12T23:27:52.913 回答