我目前遇到了问题。
我已经设置了一个TeamSpeak脚本,用PHP显示禁令列表。
它通过foreach将它们显示在桌子上。 但我不希望它显示没有UID的禁令。
这是剧本:
<table class="table">
<tr>
<th>Unique Ban ID</th>
<th>Name</th>
<th>UID</th>
<th>Created</th>
<th>Duraction</th>
<th>Invoker</th>
<th>Reason</th>
</tr>
<? foreach ($banlist['data'] as $row) : ?>
<tr>
<td>
<? if($banid == ""){ $banid = "Not Yet Assigned"; } echo $banid; ?>
</td>
<td>
<? echo $row['lastnickname']; ?>
</td>
<td>
<? echo $row['uid']; ?>
</td>
<td>
<? echo $row['created']; ?>
</td>
<td>
<? if($row['duration'] == '0' ){ $row['duration'] = "Permanent"; } else { $row['duration'] = gmdate("H:i:s", $row['duration']); } echo $row['duration']; ?>
</td>
<td>
<? echo $row['invokername']; ?>
</td>
<td>
<? echo $row['reason']; ?>
</td>
</tr>
<? endforeach; ?>
</table>
它目前显示禁止UID / $row['uid']
的禁令
如何阻止foreach
显示没有UID的整行。
Array格式如下:
Array ( [success] => 1 [errors] => Array ( ) [data] => Array ( [0] => Array ( [banid] => 22 [ip] => [name] => [uid] => {uid} [lastnickname] => {nickname} [created] => 1406227162 [duration] => 0 [invokername] => {name} [invokercldbid] => 30 [invokeruid] => {invokerid} [reason] => {reason} [enforcements] => 1 ) [1] => Array ( [banid] => 23 [ip] => 0.0.0.0 [name] => [uid] => [lastnickname] => [created] => 1406227162 [duration] => 0 [invokername] => {name} [invokercldbid] => 30 [invokeruid] => {uid} [reason] => {reason} [enforcements] => 0 ) ) )
由于显而易见的原因,我将其中一些空白删了,所以我删除的所有地方都以{}
开头和结尾。
但在这种情况下,我不希望它显示Array[1]
,因为它只包含IP而不包含UID。如何阻止它显示整个Array[1]
?
答案 0 :(得分:3)
你可以试试这个:
<? foreach ($banlist['data'] as $row) : ?>
<? if (empty($row['uid'])) continue; ?>
...
[rest of foreach code]
...
<? endforeach; ?>
它将跳过该循环并转到数组中的下一个项目。
希望这有帮助!