php教程 php手册 [开心学php100天]第二天:疯狂的数组

[开心学php100天]第二天:疯狂的数组

Jun 13, 2016 am 10:56 AM
하늘 열려 있는 정렬 ~의 첫날 링크

上期链接:开心学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不要再犹豫了");  

?>  

 

 

 

 

<?php echo $fix[0]?>  

   

 

 

   

//注意当时800*600是国标,不要想太多  

     

 

       

 

     

 

     

 

     

 

     


 
     

     

 

     

 

?  

   


       

     

 

     

 

       

 

     

 

   

 

           

       

 

        ....这里是乱七八糟的 假大空神句 .......  

     

 

        ....这里是同类网站各自互相支持穿插的广告,如:“激起你心中的虎”或“用了XXX后腿脚好了,也不起夜了”等等。  

     

          echo '
  • '.$eachline.'
  • ';
    //商品标题很耸听,意思是不买 你会后悔白来世上一趟  

           ?>  

         

     

            ........注意这里已然是页面的尾部了.......... //注意当时 备案 真的不严  

             

               

            //注意当时我朋友不会脚本,因此该页面要刷一次才会变化当前时间。  

              

           

     

         

       

     

     

     

     

     

        好,以上就是我朋友赖以生存的一个基本技能。据说换个同类型的客户他只要把“产品列表.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");  意思是把文本文档一次性读取,并且按照行读取成数组,其中包括换行符。

     

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

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

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

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

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

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

    H5 페이지 생산에는 지속적인 유지 보수가 필요합니까? H5 페이지 생산에는 지속적인 유지 보수가 필요합니까? Apr 05, 2025 pm 11:27 PM

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

    H5 페이지 제작의 장점은 무엇입니까? H5 페이지 제작의 장점은 무엇입니까? Apr 05, 2025 pm 11:48 PM

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

    부트 스트랩 테이블과 페이지 인코딩의 관계 부트 스트랩 테이블과 페이지 인코딩의 관계 Apr 07, 2025 pm 12:03 PM

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

    JS가 H5없이 실행할 수 있습니까? JS가 H5없이 실행할 수 있습니까? Apr 06, 2025 am 09:06 AM

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

    MySQL에 루트로 로그인 할 수 없습니다 MySQL에 루트로 로그인 할 수 없습니다 Apr 08, 2025 pm 04:54 PM

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

    H5 페이지 제작을 위해 수행 할 수있는 일 H5 페이지 제작을 위해 수행 할 수있는 일 Apr 06, 2025 am 07:09 AM

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

    MongoDB 데이터베이스 비밀번호를 보는 Navicat의 방법 MongoDB 데이터베이스 비밀번호를 보는 Navicat의 방법 Apr 08, 2025 pm 09:39 PM

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

    MySQL은 프로세스를 종료 할 수 없습니다 MySQL은 프로세스를 종료 할 수 없습니다 Apr 08, 2025 pm 02:48 PM

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

    See all articles