php数组前端表现 array_chunk妙用

php:

<?php 
$conn=mysql_connect("localhost","admin","1123581321");
mysql_query("set names utf8");
mysql_select_db("mytest");
$result=mysql_query("SELECT * FROM `mm`");
while ($arry=mysql_fetch_assoc($result )){
	
	$menu[]=$arry;
	
}
echo "<pre>";
print_r($menu);
echo "</pre>";
?>
Array
(
    [0] => Array
        (
            [ID] => 1
            [name] => 前端
            [parent_ID] => 0
        )

    [1] => Array
        (
            [ID] => 2
            [name] => php
            [parent_ID] => 0
        )

    [2] => Array
        (
            [ID] => 3
            [name] => javascript
            [parent_ID] => 1
        )

)

 遇到这种情况,一般在前端的表现是循环<ul>内部使用<li>浮动实现,但假如我要实现[parent_ID]处换行呢,有的会使用限制收缩父级元素限制li元素宽度一点一点的调整,或者clear等等,虽然效果没有问题,但是在标签结构和以后的灵活性上都会有很大的影响。

最好的方法当然是table,有人说table的css控制上有影响,一派胡言。关键是将二维数组转变为三维

<?php 
foreach ($menu as $d){
	$f[]=array_chunk($d, 2);
}
?>

 结果

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 1
                    [1] => 前端
                )

            [1] => Array
                (
                    [0] => 0
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => 2
                    [1] => php
                )

            [1] => Array
                (
                    [0] => 0
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [0] => 3
                    [1] => javascript
                )

            [1] => Array
                (
                    [0] => 1
                )

        )

)

 这样的话用table就完全没有问题了。、

<?php foreach ($f as $d){?>
<table>
<?php foreach ($d as $tr){?>
<tr>
<?php foreach ($tr as $td){?>
<td><?php echo $td?></td>
<?php }?>
</tr>
<?php }?>
</table>
<?php }?>

 最后想说即使是CSS3,HTML5都普及了<table>也是必不可少的。

原文地址:https://www.cnblogs.com/breakdown/p/2459344.html