【问题标题】:Not Displaying Array Lines不显示阵列线
【发布时间】:2014-09-18 09:09:04
【问题描述】:

我目前有一个问题。

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

【问题讨论】:

  • 请注意短打开标签(&lt;? 而不是 &lt;?php),因为它并非在所有服务器上都启用(不确定这对您是否重要)。
  • 哦,谢谢 :D 我什至没有意识到我有短标签。在我的代码中更改了它。谢谢一百万。

标签: php arrays foreach html-table


【解决方案1】:

你可以试试这个:

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

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

希望这会有所帮助!

【讨论】:

  • @PetervanderWal 我也是这么想的。就个人而言,我不喜欢打破循环,但认为在这种情况下这是一个可以接受的权衡。感谢您的评论。
  • 工作就像一个魅力!感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2012-10-07
  • 2016-12-07
  • 2014-05-25
  • 1970-01-01
  • 2019-07-15
  • 2017-08-10
  • 2014-05-25
  • 1970-01-01
相关资源
最近更新 更多