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 编辑 ] |