[开心学php100天]第二天:疯狂的数组
上期链接:开心学php100天 第一天本期格言:
为什么有的人学php总感觉有的知识点学的很好有的知识点却始终学不会,那是因为学的时候脸部肌肉太紧张,导致神经末梢坏死,所以瘸了。
本期知识点:php数组
数组是php最为标志性的利器功能。学好php数组基本上你就有了在php界混的初期资本了。
以前我有一个朋友开了一个电脑公司。一般电脑公司主营业务就是卖电脑,偶尔也会搭一些零配件,当然视情况不同也有一些公司附带着卖一些光盘,如电影、游戏等。我那朋友比较有技术气息自己也是草根程序员出身,对卖光盘行为很鄙视尤其是卖岛国的光盘。初期有一大段时间他的主营业务是帮一些公司或企业做网站。当时的宣传性网站完全没有现在的复杂,基本上就2-3个页面,动态网站多一点也不会超过10个界面,何况当时有很多免费空间,所以当时他那几百几百赚很轻松、很敏捷、很高效啊,我曾“偷师”他的网站代码,我记不清楚全部,只能yy一下大概的模样,大家可以小看一下,php的:
[php] view plaincopy
<?php
$var=file("./产品列表.txt");//当时用access还不如用 txt
if(!$var || is_array($var) || count($var)==0) exit("系统繁忙,请稍后再试");
$fix=array("中国XXX最大的网站","只有我们的产品是正宗的","假一罚十绝不坑人","上哪能买到如此好的XXX不要再犹豫了");
?>
<html>
<head>
<title><?php echo $fix[0]?></a></title>
</head>
<body>
<table style="width: 800px;"> //注意当时800*600是国标,不要想太多
<tr>
<td style="background: .........;">
<?php echo $fix[0].'---------'.$fix[1] ?>
</td>
</tr>
<tr>
<td>
....这里是乱七八糟的 假大空神句 .......
</td>
</tr><br> <br> <tr>
<td>
....这里是同类网站各自<strong>互相支持</strong>穿插的广告,如:“激起你心中的虎”或“用了XXX后腿脚好了,也不起夜了”等等。
</td>
</tr>
?
<tr> <br> <td> <?php foreach($var as $eachline) <br> echo '<li><a href="这里是商品详细页的链接">'.$eachline.'</a></li>'; <br>//商品标题很耸听,意思是不买 你会后悔白来世上一趟
?>
</td>
</tr>
<tr>
<td>
........注意这里已然是页面的尾部了.......... //注意当时 备案 真的不严
<?php echo $fix[2].$fix[3] ?>
<?php echo date('Y-m-d H:i:s');?> //注意当时我朋友不会脚本,因此该页面要刷一次才会变化当前时间。
</td>
</tr>
</table>
</body>
</html>
好,以上就是我朋友赖以生存的一个基本技能。据说换个同类型的客户他只要把“产品列表.txt” 换换内容,然后把td的背景图片换掉,页面立马洗新革面,我朋友当时非常 严肃的告诉我,他已经实现“产品化”的开发模式了。我膜拜的五体投地,因为我当时初学asp时,绝对没有这么“可配置化”。
网页里面的广告和语句大家不要太纠结,反正当时作为小白的我看了这个网页,很想花钱试一试,不过我朋友告诉我我还没到用的时候。我追问“什么时候能用”,我朋友“扇”了我一巴掌。
接下来我们切入正题,解释一下上文中的知识点。
一、数组最基本的表现形式
$fix=array("内容1","内容2","内容3");这个是php数组最基本的表现方式。请原谅我不想把广告词再打一遍,太恶心了。
你想堆积多少内容均可,只要你写的下。当你要调用里面的内容时,你只要从“0”开始计数进行调用,如$fix[0],$fix[1]...$fix[n]。
注意:为什么要从0开始。一个是因为"php老大"就是这么设计的,另外一个是因为 这个最最基本数组的真身是
$fix=array(0=>"内容1",1=>"内容2",2=>"内容3“);
"=>"这个符号是被省略了,这个符号 左边是 键,右边是值,一般很多教科书上 会解释成 "$key=>$value".大家不要纠结为什么左边是$key右边是$value,我告诉大家是习惯性写法,你要写成 $ss=>$bb,都代表左边那个是键,右边那个是值。
所以:任何一个形式的数组 都会有键和值。省不省略看你的,不管你省不省,反正我省了。
拓展一下:既然有键值,那么就可以更改键值。
譬如 $fix=array("夸张的网站名称"=>"中国最大的XXX网站 ","扯蛋的产品品牌"=>"只有我们是最正宗的","听了想吐的广告语"=>"假一罚十绝不坑人");
这个时候假如你要把 "扯蛋的产品品牌" 输出到页面,你就不能用 echo $fix[1]; 因为键值 已经被你改了。
应该用 echo $fix['扯蛋的产品品牌'];
二、遍历数组
继续以 $fix=array("内容1","内容2","内容3"); 为例子
1、用foreach是循环小型数组最贴身最适合的方法。
基本语法是:foreach(这里是原始数组 as 这里写每次遍历时设置的变量)
例如:foreach($var as $eachline) echo $eachline; 则会以此输出 内容1.....内容3;
2、很多人知道其实还有一个 while 可以遍历数组
基本语法是:while(list($key,$value)=each($attr))
例如:while(list($key,$value)=each($fix)) echo $key.$value; 则会依次输出 0内容1.。。。。2内容2;
这两种遍历区别这里不讲的太深,后面会讲到,我现在只告诉大家,如果你只是要遍历数据,那么不管啥时候都用foreach。如果你要在遍历过程中还要更改数组的值,那么用while。原因只有一个字,为了"快“。现在生活节奏太快,写程序首要原则是”快“。
至于其他遍历数组的语法还有,我个人认为咱没必要学了,除非你去考秀才,如果是实战 这两种够了,我们也是为了快。
拓展一
补充:Web开发 , php ,
- 更多php疑问解答:
- php使用imagick将image图片转化为字符串模式
- php通过gd实现图片图片转换为字符图代码
- PHP把图片转base64代码,php把base64代码转换为图片并保存
- PHP把图片base64转换成图片并保存成文件
- wordpress问题<?php if(have_posts()) : ?>
- 建设一个搜索类网站php还是jsp,数据库那个好
- 没理由啊 php代码无法执行,貌似有语法错误。。。
- 关于PHP 和API 的一段代码不懂啊不懂,请高手指点! 这是淘宝API的
- php语言中,序列化到底在那里使用?它的优势是什么?劣势是什么?
- PHP函数等于或等于应该怎么表达
- 请教php高手,解决basename函数和mb_substr函数处理中文文件名称的解决方法,在上传文件时,总是出现乱码
- .NET,PHP,JAVA,JS优秀点分别是?
- 织梦cms 在环境监测的时候 wamp5 gd不支持 是为什么。;extension=php_gd2.dll这一句我删除了还是不显示?
- 我想学PHP。1.应安装什么编程工具? 2. 装LIUNX系统是装简易的还是?什么版本的?3.还应安装什么?
- <?php 和 <? 有什么区别