不显示数组线

时间:2014-07-26 17:57:44

标签: php arrays foreach html-table

我目前遇到了问题。

我已经设置了一个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]

1 个答案:

答案 0 :(得分:3)

你可以试试这个:

<? foreach ($banlist['data'] as $row) : ?>
  <? if (empty($row['uid'])) continue; ?>
  ...
  [rest of foreach code]
  ...
<? endforeach; ?>

它将跳过该循环并转到数组中的下一个项目。

希望这有帮助!