NULL/空格的PHP输出



我正在尝试使用php从mysql输出。我输出的SQL查询包含几个联接,其中一些值为NULL。当我回显输出时,我会得到空的NULL值。我该如何摆脱这片空地?我想输出的每个值之间都有换行符,但NULL值只是放了一个空格。所以我的输出看起来有点像这样。

它看起来像什么

Dave Smith
科目1

受试者3

John Smith
科目1
专题2

受试者4

我希望它看起来像什么

Dave Smith
科目1
主题3

John Smith
科目1
学科2
课程4

我尝试过一些php trim函数,但似乎都不起作用。相关代码如下。

$resultSet = $db->query ("...my query");  
echo $resultSet -> num_rows;
While($rows = $resultSet ->fetch_assoc())
{
$FirstName = ($rows['First_Name']);
$Surname =   ($rows['Surname']);
$subject1 = ($rows['subject1']);
$subject2 = ($rows['subject2']);
$subject3 = ($rows['subject3']);
$subject4 = ($rows['subject4']);
$output .= "<p> $FirstName $Surname <br/> Chosen Subjects <br/> $subject1 <br/> $subject2 <br/> 
$subject3 <br/>  $subject4 </p>";
}

当我回显输出时,我会得到NULL值的空格

$subject1 = ($rows['subject1']);
$subject2 = ($rows['subject2']);
$subject3 = ($rows['subject3']);
$subject4 = ($rows['subject4']);
$output .= "<p> $FirstName $Surname <br/> Chosen Subjects <br/> $subject1 <br/> 
$subject2 <br/>  $subject3 <br/>  $subject4 </p>";

空空间的原因是,无论是否存在任何PHP值,都要放入<br/>

建议的替代方案:

  • 将值放入一个数组中
  • 清除阵列中的任何falsey/null
  • implode将数组转换为最终字符串

a(将值放入数组:

$subject[1] = $rows['subject1'];
$subject[2] = $rows['subject2'];
$subject[3] = $rows['subject3'];
$subject[4] = $rows['subject4'];

b( 清除null参考

$subjectOutput = array_filter($subject, 'strlen');

注意:如果您不关心其他falsey值,例如0,那么您可以简单地执行更基本的array_filter()调用,例如= array_filter($subject);

c( 实现数组。

$subjectString = implode($subjectOutput, '<br/>');

示例:

$subject[1] = "horses";
$subject[2] = 12;
$subject[3] = 0;
$subject[4] = null;
$subject[5] = "cats";
$subjectOutput = array_filter($subject, 'strlen');
//$subject[1] = "horses";
//$subject[2] = 12;
//$subject[3] = 0;
//$subject[5] = "cats";
/***
* simply print the sting and voila!
***/
$subjectString = implode($subjectOutput, '<br/>');
// $subjectString = "horses<br/>12<br/>0<br/>cats";
$output .= "<p> $FirstName $Surname <br/> Chosen Subjects <br/> ".$subjectString." </p>";

您可以尝试以下代码:

$output = "<p>{$FirstName} {$Surname}<br/>Chosen Subjects:<br/>";
$output .= (!empty($subject1)) ? "{$subject1}<br/>" : "";
$output .= (!empty($subject2)) ? "{$subject2}<br/>" : "";
$output .= (!empty($subject3)) ? "{$subject3}<br/>" : "";
$output .= (!empty($subject4)) ? "{$subject4}<br/>" : "";
$output .= "</p>";

最新更新