Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

DZ探秘:php数组遍历 & htm数组遍历

[复制链接]
泡哥 发表于 2007-1-17 23:26:36 | 显示全部楼层 |阅读模式
1.数组
数组是一个由若干同类型变量组成的集合,引用这些变量时可用同一名字。数组均由连续的存储单元组成,最低地址对应于数组的第一个元素,最高地址对应于最后一个元素,数组可以是一维的,也可以是多维的。

通俗举例:(统计一队模特的身材信息)
编号  身高  体重  胸围  腰围   臀围
1.     1.80   90    86    53      90
2.     1.77   101  89    49      89
3.     1.78   88    85    50      87

A.编号就是数组地址
B.身高、体重、三围构成了数组的元素

我们可以赋值给一个数组

$modle_info[1] = array(1.80,90,86,53,90);
$modle_info[2] = array(1.77,101,89,49,89);
$modle_info[3] = array(1.78,88,85,50,87);

这样$modle_info这个多维数组就把所有的模特信息储存起来。这不是我想说得主题,我想谈谈DZ怎么解开这些数组然后前台模版显示。

在php里提供了两个遍历
foreach()和while()(流程控制),foreach效率高,但对于元素多的数组用while()比较好

我们来看看怎么解开这个数组,这里我们用foreach()
foreach()中的表达式有两种   $array as $key=>$value    $array as $value  区别是提取数组元素的同时获得$key的地址,这个很有用

$modle_info是一个复合数组,所以我们用到了for语句
for($i = 1; $i <= 3; $i++) {  // i 的起始值为,如果 $i 小于或等于3那么 $i+1 并且执行中间的语句段
    foreach($modle_info[$i] as $key => $temp){  // 遍历$modle_info并且指明$i为地址,解析后把数组元素储存入$temp变量,每一次循环都是过滤出单个元素,给我们处理数据
        $modle[sg] = $temp[0]; //$modle_info[1]中的数组地址从0开始 这里五个是把数组中的信息元素归集到$modle变量
        $modle[tz] = $temp[1];
        $modle[xw] = $temp[2];
        $modle[yw] = $temp[3];
        $modle[tw] = $temp[4];
        $modle[bh] = $i;
        $modle_list[] = $modle;  //这里是把数组欠套
    }
}

好了 我们通过foreach把$modle_info整理的更加有条理

现在说前台模版,你们经常看见<!--{loop ......}-->  这个就是DZ把遍历函数在模版中的另一种运用。<!--注释-->这是htm的注释写法,但是经过DZ的template.func.php转换<!--{loop ......}-->等价于 foreach,大C蛮有创意不过减慢了模板显示的速度

<table>
<!--{loop $modle_list $md}-->  //把$modle_list数组分解,每一个地址循环一次赋值给$md
    <tr><td>编号:</td><td>$md['bh']</td><tr>
    <tr><td>身高:</td><td>$md['sg']</td><tr>
    <tr><td>体重</td><td>$md['tz']</td><tr>
    <tr><td>胸围</td><td>$md['xw']</td><tr>
    <tr><td>腰围</td><td>$md['yw']</td><tr>
    <tr><td>臀围</td><td>$md['tw']</td><tr>
    <tr><td class="altbg1"  colspan="2">下一个模特</td><tr>
<!--{/loop}-->
</table>

希望你能看懂,我菜鸟级水平只是想交流一下,未必说得明白和准确,这是DZ探秘系列第一个教程,希望大家指正和补充!授人以渔是我的目的~谢谢!

[ 本帖最后由 泡哥 于 2007-1-17 23:29 编辑 ]

评分

2

查看全部评分

 楼主| 泡哥 发表于 2007-1-17 23:32:31 | 显示全部楼层
留位:) :)
回复

使用道具 举报

僭燮水 发表于 2007-1-17 23:32:54 | 显示全部楼层
二楼也不错

强贴 顶
回复

使用道具 举报

tcwow 发表于 2007-1-17 23:54:48 | 显示全部楼层
太深奥了,看不懂,帮顶。。
回复

使用道具 举报

mysheros 发表于 2007-1-17 23:56:17 | 显示全部楼层
首页 占位
回复

使用道具 举报

jet_li 发表于 2007-1-18 00:47:58 | 显示全部楼层
回复

使用道具 举报

ps3 发表于 2007-1-18 01:18:46 | 显示全部楼层
满不错的!:)
回复

使用道具 举报

jianquan 发表于 2007-1-18 01:36:33 | 显示全部楼层
不是很明白
回复

使用道具 举报

ningyeh 发表于 2007-1-18 08:27:37 | 显示全部楼层
当然顶,感激教导!
回复

使用道具 举报

babyq 发表于 2007-1-18 08:28:14 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-28 01:20 , Processed in 0.328291 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表