在foreach中排除空值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在foreach中排除空值相关的知识,希望对你有一定的参考价值。
我需要使用foreach从数组中排除NULL值,但它实际上不起作用:
foreach ($node->field_fichier_joint as $key => $fichier) {
//Ne pas afficher les champs vides du tableau
if ($fichier !== NULL):
print 'debug de $fichier'.$fichier;
print '<li>'.$node->field_fichier_joint[$key]['view'].'</li>';
endif;
}
这会产生空LI:
<ul>
<li>
<div class="filefield-file clear-block">
<img class="filefield-icon field-icon-application-pdf" alt="icône application/pdf" src="sites/all/modules/filefield/icons/application-pdf.png">
<a href="sites/all/media/contenu_international/cal_2sec_20112012.pdf" type="application/pdf; length=39748" title="cal_2sec_20112012.pdf" target="_blank">Fichier test pdf</a>
</div>
</li>
<li>
<div class="filefield-file clear-block">
<img class="filefield-icon field-icon-application-pdf" alt="icône application/pdf" src="/sites/all/modules/filefield/icons/application-pdf.png">
<a href="/sites/all/media/contenu_international/bac_tehno_stg.pdf" type="application/pdf; length=106449" title="bac_tehno_stg.pdf" target="_blank">Fichier test pdf 2</a>
</div>
</li>
<li></li>
<li></li>
<li></li>
<li><a href="https://info.erasmusplus.fr/" target="_blank">Un site internet</a></li>
</ul>
缺什么 ?
谢谢
EDIt:var_dump($fichier);
给出一个:array(1) { ["view"]=> string(0) "" }
所以我需要过滤空值,而不是NULL值。道歉。
EDIT2:最终工作代码
foreach ($node->field_fichier_joint as $key => $fichier) {
//Ne pas afficher les champs vides du tableau
if (!empty($fichier['view'])):
// print 'debug de $fichier'.$fichier;
print '<li>'.$node->field_fichier_joint[$key]['view'].'</li>';
endif;
}
答案
因此,只需使用empty
函数检查值是否为空:
foreach ($node->field_fichier_joint as $key => $fichier) {
//Ne pas afficher les champs vides du tableau
if (!empty($fichier['view'])):
print '<li>' . $fichier['view'] . '</li>';
endif;
}
另一答案
你可以查看$node->field_fichier_joint[$key]['view']
的内容
foreach ($node->field_fichier_joint as $key => $fichier) {
//Ne pas afficher les champs vides du tableau
if ($fichier !== NULL):
print 'debug de $fichier'.$fichier;
print (isset($node->field_fichier_joint[$key]['view']))
? '<li>'.$node->field_fichier_joint[$key]['view'].'</li>'
: '';
endif;
}
或者由B.Desai建议使用empty()来检查空字符串
foreach ($node->field_fichier_joint as $key => $fichier) {
//Ne pas afficher les champs vides du tableau
if ($fichier !== NULL):
print 'debug de $fichier'.$fichier;
print (!empty($node->field_fichier_joint[$key]['view']))
? '<li>'.$node->field_fichier_joint[$key]['view'].'</li>'
: '';
endif;
}
另一答案
只是filter NULL
价值观:
$values = array_filter($node->field_fichier_joint, 'is_null');
foreach ($values as $key => $fichier) {
...
}
另一答案
foreach ($node->field_fichier_joint as $key => $fichier) {
if ($fichier == NULL):
continue;
print '<li>'.$node->field_fichier_joint[$key]['view'].'</li>';
endif;
}
以上是关于在foreach中排除空值的主要内容,如果未能解决你的问题,请参考以下文章
Ext JS 在摘要中排除空值 Ext.grid.feature.Summary 在网格中