Когда я повторяю вывод, я получаю пустые пробелы для значений 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>";
Причина вашего пустого пространства в том, что вы вводите <br/>
независимо от того, что касается любого значения PHP.
Предлагаемая альтернатива:
- Поместить значения в массив.
- Очистить любые
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, вы можете просто выполнить еще более простой c 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>";