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

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

Jun 13, 2016 am 10:56 AM
kenapa langit terbuka tatasusunan daripada hari pertama Pautan

上期链接:开心学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");  意思是把文本文档一次性读取,并且按照行读取成数组,其中包括换行符。

     

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Tidak dapat log masuk ke mysql sebagai akar Tidak dapat log masuk ke mysql sebagai akar Apr 08, 2025 pm 04:54 PM

    Sebab utama mengapa anda tidak boleh log masuk ke MySQL sebagai akar adalah masalah kebenaran, ralat fail konfigurasi, kata laluan tidak konsisten, masalah fail soket, atau pemintasan firewall. Penyelesaiannya termasuk: periksa sama ada parameter pengikat di dalam fail konfigurasi dikonfigurasi dengan betul. Semak sama ada kebenaran pengguna root telah diubahsuai atau dipadam dan ditetapkan semula. Sahkan bahawa kata laluan adalah tepat, termasuk kes dan aksara khas. Semak tetapan dan laluan kebenaran fail soket. Semak bahawa firewall menyekat sambungan ke pelayan MySQL.

    Kaedah Navicat untuk melihat kata laluan pangkalan data MongoDB Kaedah Navicat untuk melihat kata laluan pangkalan data MongoDB Apr 08, 2025 pm 09:39 PM

    Tidak mustahil untuk melihat kata laluan MongoDB secara langsung melalui Navicat kerana ia disimpan sebagai nilai hash. Cara mendapatkan kata laluan yang hilang: 1. Tetapkan semula kata laluan; 2. Periksa fail konfigurasi (mungkin mengandungi nilai hash); 3. Semak Kod (boleh kata laluan Hardcode).

    Cara Memulihkan Data Selepas SQL Memadam Barisan Cara Memulihkan Data Selepas SQL Memadam Barisan Apr 09, 2025 pm 12:21 PM

    Memulihkan baris yang dipadam secara langsung dari pangkalan data biasanya mustahil melainkan ada mekanisme sandaran atau transaksi. Titik Utama: Rollback Transaksi: Jalankan balik balik sebelum urus niaga komited untuk memulihkan data. Sandaran: Sandaran biasa pangkalan data boleh digunakan untuk memulihkan data dengan cepat. Snapshot Pangkalan Data: Anda boleh membuat salinan bacaan pangkalan data dan memulihkan data selepas data dipadam secara tidak sengaja. Gunakan Pernyataan Padam dengan berhati -hati: Periksa syarat -syarat dengan teliti untuk mengelakkan data yang tidak sengaja memadamkan. Gunakan klausa WHERE: Secara jelas menentukan data yang akan dipadam. Gunakan Persekitaran Ujian: Ujian Sebelum Melaksanakan Operasi Padam.

    Bagaimana untuk melihat kata laluan pangkalan data di Navicat untuk MariaDB? Bagaimana untuk melihat kata laluan pangkalan data di Navicat untuk MariaDB? Apr 08, 2025 pm 09:18 PM

    Navicat untuk MariaDB tidak dapat melihat kata laluan pangkalan data secara langsung kerana kata laluan disimpan dalam bentuk yang disulitkan. Untuk memastikan keselamatan pangkalan data, terdapat tiga cara untuk menetapkan semula kata laluan anda: Tetapkan semula kata laluan anda melalui Navicat dan tetapkan kata laluan yang kompleks. Lihat fail konfigurasi (tidak disyorkan, risiko tinggi). Gunakan alat baris perintah sistem (tidak disyorkan, anda perlu mahir dalam alat baris arahan).

    CentOS berhenti penyelenggaraan 2024 CentOS berhenti penyelenggaraan 2024 Apr 14, 2025 pm 08:39 PM

    CentOS akan ditutup pada tahun 2024 kerana pengedaran hulu, RHEL 8, telah ditutup. Penutupan ini akan menjejaskan sistem CentOS 8, menghalangnya daripada terus menerima kemas kini. Pengguna harus merancang untuk penghijrahan, dan pilihan yang disyorkan termasuk CentOS Stream, Almalinux, dan Rocky Linux untuk memastikan sistem selamat dan stabil.

    mysql tidak dapat menamatkan prosesnya mysql tidak dapat menamatkan prosesnya Apr 08, 2025 pm 02:48 PM

    Perintah membunuh di MySQL kadang -kadang gagal kerana status khas proses dan tahap isyarat yang tidak betul. Kaedah untuk menamatkan proses MySQL dengan berkesan termasuk: mengesahkan status proses, menggunakan perintah mysqladmin (disyorkan), menggunakan Kill -9 dengan berhati -hati, memeriksa sumber sistem, dan penyelesaian masalah yang mendalam mengenai log ralat.

    Kaedah Navicat untuk melihat kata laluan pangkalan data PostgreSQL Kaedah Navicat untuk melihat kata laluan pangkalan data PostgreSQL Apr 08, 2025 pm 09:57 PM

    Tidak mustahil untuk melihat kata laluan PostgreSQL terus dari Navicat, kerana Navicat menyimpan kata laluan yang disulitkan atas alasan keselamatan. Untuk mengesahkan kata laluan, cuba sambungkan ke pangkalan data; Untuk mengubah suai kata laluan, sila gunakan antara muka grafik PSQL atau Navicat; Untuk tujuan lain, anda perlu mengkonfigurasi parameter sambungan dalam kod untuk mengelakkan kata laluan berkod keras. Untuk meningkatkan keselamatan, disyorkan untuk menggunakan kata laluan yang kuat, pengubahsuaian berkala dan membolehkan pengesahan multi-faktor.

    Cara Memasang MySQL di CentOS7 Cara Memasang MySQL di CentOS7 Apr 14, 2025 pm 08:30 PM

    Kunci untuk memasang MySQL dengan elegan adalah untuk menambah repositori MySQL rasmi. Langkah -langkah khusus adalah seperti berikut: Muat turun kekunci GPG rasmi MySQL untuk mencegah serangan pancingan data. Tambah fail repositori MySQL: rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm kemas kini yum repository cache: yum update mysql: yum pemasangan mysql-server mysql Server.

    See all articles