我需要使用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>
缺少什么?
由于
编辑:
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;
}
答案 0 :(得分:1)
因此,只需使用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;
}
答案 1 :(得分:0)
您可以查看$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;
}
答案 2 :(得分:-1)
只需filter NULL
个值:
$values = array_filter($node->field_fichier_joint, 'is_null');
foreach ($values as $key => $fichier) {
...
}
答案 3 :(得分:-3)
foreach ($node->field_fichier_joint as $key => $fichier) {
if ($fichier == NULL):
continue;
print '<li>'.$node->field_fichier_joint[$key]['view'].'</li>';
endif;
}