程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> [開心學php100天]第二天:瘋狂的數組

[開心學php100天]第二天:瘋狂的數組

編輯:關於PHP編程

上期鏈接:開心學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。原因只有一個字,為了"快“。現在生活節奏太快,寫程序首要原則是”快“。       至於其他遍歷數組的語法還有,我個人認為咱沒必要學了,除非你去考秀才,如果是實戰 這兩種夠了,我們也是為了快。      拓展一下,數組裡面的值不光可以放字符串,也可以放數組也可以任何形式的變量值.     如 $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");  意思是把文本文檔一次性讀取,並且按照行讀取成數組,其中包括換行符。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved