PHP中如何将多维数组的数据从最后一条到第一条展示?
在PHP中倒序输出多维数组
嘿,作为刚接触数组的编程新手,倒序输出多维数组其实有几种简单的方法,我来给你一步步讲清楚~
方法1:使用array_reverse()反转数组
array_reverse()是PHP内置的函数,它可以直接返回一个顺序完全反转的新数组,然后你就可以用熟悉的foreach循环来遍历这个反转后的数组了。
这是修改后的完整代码:
<?php $trans = array ( array("10/3/22", 1, 54), array("10/48/32", 54, 54), array("3/29/2018", 54, 128.84) ); echo '<table border="1">'; echo '<tr><th>Date</th><th>Before Balance</th><th>After Balance</th></tr>'; // 生成反转后的数组,原数组不会被修改 $reversedTrans = array_reverse($trans); foreach ($reversedTrans as $tran) { echo '<tr>'; // 遍历子数组中的每个数据,输出为表格单元格 foreach ($tran as $cell) { // 用htmlspecialchars处理内容,避免特殊字符破坏表格结构 echo '<td>' . htmlspecialchars($cell) . '</td>'; } echo '</tr>'; } echo '</table>'; ?>
小提示:
array_reverse()默认会重新给反转后的数组分配索引,如果需要保留原数组的键名,可以传入第二个参数true,比如array_reverse($trans, true),不过对于你的索引数组来说,默认情况就足够用啦。- 加入
htmlspecialchars()是个好习惯,能避免数据里的特殊字符(比如<、>)打乱HTML结构,还能预防简单的XSS攻击。
方法2:通过索引倒序遍历(不创建新数组)
如果你不想额外创建一个反转后的数组,也可以直接通过索引从后往前遍历原数组:
<?php $trans = array ( array("10/3/22", 1, 54), array("10/48/32", 54, 54), array("3/29/2018", 54, 128.84) ); echo '<table border="1">'; echo '<tr><th>Date</th><th>Before Balance</th><th>After Balance</th></tr>'; // 获取数组的总元素个数 $totalItems = count($trans); // 从最后一个元素的索引(总个数-1)开始,循环到第一个元素(索引0) for ($i = $totalItems - 1; $i >= 0; $i--) { $tran = $trans[$i]; echo '<tr>'; foreach ($tran as $cell) { echo '<td>' . htmlspecialchars($cell) . '</td>'; } echo '</tr>'; } echo '</table>'; ?>
这种方法直接操作原数组的索引,不需要额外的内存来存储反转后的数组,适合处理比较大的数组时使用。
内容的提问来源于stack exchange,提问作者Mixxed Developer
相关产品推荐
相关产品推荐

