好的,我从ARRAY
的数据库中返回值。有些页面有3个值,有些页面有10个,其他页面有0个。
如果页面返回一个值,我希望标签显示为ONCE,因此不在循环中。
标签 - &gt; $key_label = '<span class="hl_reference"><u>key references:</u></span>';
如果网页没有$reference_keys
,我不希望标签出现,因此$key_label = false;
所以我想查看ARRAY
的值,如果&gt; = 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 .' ';
}
if(array($value => 1) && !$key_label)
{
$key_label = true;
echo $key_label;
};
------------------------------- UPDATE --------------- --------------
此代码似乎仅适用于只有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 .' ';
}
$result = count($value);
if ($result > 1)
{
echo $key_label;
}
------------------------------- UPDATE --------------- --------------
John 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 .' ';
}
};
------------------------------- UPDATE --------------- --------------
John C解决了这个..下面的工作代码!谢谢大家! - &GT;
$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 .' ';
}
};
答案 0 :(得分: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 .' ';
}
}
编辑如果$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 .' ';
}
}
答案 1 :(得分:0)
count功能可以帮助您:
if(count($value) >= 1 && !$key_label)
答案 2 :(得分: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 .' ';
}
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 .' ';
}
编辑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 .' ';
}