[开心学php100天]第二天:疯狂的数组
上期链接:开心学php100天 第一天
本期格言:
为什么有的人学php总感觉有的知识点学的很好有的知识点却始终学不会,那是因为学的时候脸部肌肉太紧张,导致神经末梢坏死,所以瘸了。
本期知识点:php数组
数组是php最为标志性的利器功能。学好php数组基本上你就有了在php界混的初期资本了。
以前我有一个朋友开了一个电脑公司。一般电脑公司主营业务就是卖电脑,偶尔也会搭一些零配件,当然视情况不同也有一些公司附带着卖一些光盘,如电影、游戏等。我那朋友比较有技术气息自己也是草根程序员出身,对卖光盘行为很鄙视尤其是卖岛国的光盘。初期有一大段时间他的主营业务是帮一些公司或企业做网站。当时的宣传性网站完全没有现在的复杂,基本上就2-3个页面,动态网站多一点也不会超过10个界面,何况当时有很多免费空间,所以当时他那几百几百赚很轻松、很敏捷、很高效啊,我曾“偷师”他的网站代码,我记不清楚全部,只能yy一下大概的模样,大家可以小看一下,php的:
[php] view plaincopy
$var=file("./产品列表.txt");//当时用access还不如用 txt
if(!$var || is_array($var) || count($var)==0) exit("系统繁忙,请稍后再试");
$fix=array("中国XXX最大的网站","只有我们的产品是正宗的","假一罚十绝不坑人","上哪能买到如此好的XXX不要再犹豫了");
?>
|
....这里是乱七八糟的 假大空神句 .......
|
....这里是同类网站各自互相支持穿插的广告,如:“激起你心中的虎”或“用了XXX后腿脚好了,也不起夜了”等等。
|
echo ' //商品标题很耸听,意思是不买 你会后悔白来世上一趟 ?>
|
........注意这里已然是页面的尾部了.......... //注意当时 备案 真的不严
//注意当时我朋友不会脚本,因此该页面要刷一次才会变化当前时间。
|
好,以上就是我朋友赖以生存的一个基本技能。据说换个同类型的客户他只要把“产品列表.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。原因只有一个字,为了"快“。现在生活节奏太快,写程序首要原则是”快“。
至于其他遍历数组的语法还有,我个人认为咱没必要学了,除非你去考秀才,如果是实战 这两种够了,我们也是为了快。
拓展一下,数组里面的值不光可以放字符串,也可以放数组也可以任何形式的变量值.
如 $fix=array("扯蛋的广告词"=>array("前100位订购者,再送200元大礼包","20天精通某语言","孩子不吃饭是因为缺X"));
对于这样的数组,$fix['扯蛋的广告词'] 的值其实是个数组、
譬如 echo $fix['扯蛋的广告词'][1]; 则会输出 "20天精通某语言"
三、数组的赋值
来举个例子:
$fix=array(); 这个数组是空的。
$fix[]="内容1”; 此时就等同于 $fix=array("内容1");或者$fix=array(0=>"内容1");
$fix[]="内容2";此时等同于 $fix=array("内容1","内容2"); 或者 $fix=array(0=>"内容1",1=>"内容2");
$fix['我们在学什么']='php'; 此时等同于 $fix=array(0=>"内容1","我们在学什么"=>"php");
以上赋值都是在数组的尾部赋值,其实还有array_push函数可以赋值,语法是$fix=array_push($fix,"内容1","内容2");效果是一样的,只不过array_push可以一下子加好多值,用'[]'一次一个。
php数组函数很强大,几乎想干什么都能干到,譬如数组的排序、合并、反转、删除等等,大家可以百度一下,由于篇幅问题这里不多讲,函数靠背、靠多用就会,不难。不过呢,到了实战做项目 很多数据的处理都需要通过数据库存储过程、优化的表结构、好的数据排序算法、技巧化的数据读取方式来做,真正实战php里面好多数组的函数基本上是用不到的,譬如你接到了一个1230X这样的项目,要列出所有国人的名字并排序你敢用php数组来遍历着干并且合并、反转吗。当然假如你的客户是面向梵蒂冈或者冰岛的那可以这么干。
不过很多函数譬如, is_array--是否是数组 in_array---是否存在某值,array_key_exists---数组中是否存在某键值等等常用的函数是一定要学会的。如学不会,那你离做领导也不远了。
彩蛋:
上文中有个 $var=file("./产品列表.txt"); 意思是把文本文档一次性读取,并且按照行读取成数组,其中包括换行符。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











코드 취약점, 브라우저 호환성, 성능 최적화, 보안 업데이트 및 사용자 경험 개선과 같은 요소로 인해 H5 페이지를 지속적으로 유지해야합니다. 효과적인 유지 관리 방법에는 완전한 테스트 시스템 설정, 버전 제어 도구 사용, 페이지 성능을 정기적으로 모니터링하고 사용자 피드백 수집 및 유지 관리 계획을 수립하는 것이 포함됩니다.

H5 페이지 제작의 장점에는 경량 경험, 빠른 로딩 속도 및 사용자 유지 개선이 포함됩니다. 교차 플랫폼 호환성, 다른 플랫폼에 적응할 필요가 없어 개발 효율성을 향상시킵니다. 유연성 및 동적 업데이트, 감사가 필요하지 않아 콘텐츠를 쉽게 수정하고 업데이트 할 수 있습니다. 기본 앱보다 비용 효율적이고 개발 비용이 낮습니다.

부트 스트랩 테이블 Garbled 코드는 일반적으로 페이지 인코딩이 테이블 데이터 인코딩과 일치하지 않기 때문입니다. 이 문제를 해결하려면 일관성이 있는지 확인해야합니다. 특정 단계에는 페이지 및 테이블 데이터 인코딩, 페이지 인코딩 설정 및 인코딩 확인. UTF-8을 사용하는 경우 서버도 지원해야합니다. 해결할 수없는 경우 JavaScript 인코딩 라이브러리를 사용해보십시오.

JavaScript가 HTML5없이 실행할 수 있습니까? JavaScript 엔진 자체는 독립적으로 실행할 수 있습니다. 브라우저 환경에서 JavaScript를 실행하는 것은 코드를로드하고 실행하는 데 필요한 표준화 된 환경을 제공하기 때문에 HTML5에 따라 다릅니다. HTML5가 제공하는 API 및 기능은 최신 JavaScript 프레임 워크 및 라이브러리에 중요합니다. HTML5 환경이 없으면 많은 JavaScript 기능을 구현하기 어렵거나 구현할 수 없습니다.

Root로 MySQL에 로그인 할 수없는 주된 이유는 권한 문제, 구성 파일 오류, 암호 일관성이 없음, 소켓 파일 문제 또는 방화벽 차단입니다. 솔루션에는 다음이 포함됩니다. 구성 파일의 BAND-ADDRESS 매개 변수가 올바르게 구성되어 있는지 확인하십시오. 루트 사용자 권한이 수정 또는 삭제되어 재설정되었는지 확인하십시오. 케이스 및 특수 문자를 포함하여 비밀번호가 정확한지 확인하십시오. 소켓 파일 권한 설정 및 경로를 확인하십시오. 방화벽이 MySQL 서버에 연결되는지 확인하십시오.

H5 페이지 제작은 간단한 웹 페이지를 만드는 데 적합 할뿐만 아니라 다음을 포함한 강력한 기능도 있습니다. 동적 상호 작용 : 애니메이션, 비디오 및 3D 모델과 같은 요소를 사용하여 사용자에게 몰입 형 경험을 제공합니다. 모바일 친화적 인 : 반응 형 디자인은 다양한 장치에서 최고의 탐색 경험을 보장합니다. 데이터 시각화 : 차트 및 맵과 같은 요소를 사용하여 직관적 인 방식으로 데이터를 제시합니다. 게임 및 대화식 응용 프로그램 : 사용자 참여를 향상시키기 위해 가벼운 게임 및 대화식 응용 프로그램을 개발합니다. 크로스 플랫폼 호환성 : HTML5, CSS3 및 JavaScript의 조합을 기반으로하지만 호환성은 여전히 어려운 일입니다. 성능 최적화 : 복잡한 페이지의 경우 코드 효율을 최적화해야합니다. 보안 : 보안 취약점을 방지해야합니다

해시 값으로 저장되기 때문에 MongoDB 비밀번호를 Navicat을 통해 직접 보는 것은 불가능합니다. 분실 된 비밀번호 검색 방법 : 1. 비밀번호 재설정; 2. 구성 파일 확인 (해시 값이 포함될 수 있음); 3. 코드를 점검하십시오 (암호 하드 코드 메일).

MySQL의 킬 명령은 프로세스의 특별한 상태와 부적절한 신호 레벨로 인해 때때로 실패합니다. MySQL 프로세스를 효과적으로 종료하는 방법에는 다음이 포함됩니다. 프로세스 상태 확인, MySQLADMIN 명령 (권장) 사용, 킬 -9를주의해서 사용하고 시스템 리소스 확인 및 오류 로그의 심층 문제 해결 문제가 포함됩니다.
