版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章PHP函數(shù)與數(shù)組《PHP網站開發(fā)實例教程(第3版)》學習目標/Target
掌握函數(shù)的定義和調用方法,能夠根據(jù)需求定義和調用函數(shù)。
掌握設置函數(shù)參數(shù)默認值的方式,能夠給函數(shù)的參數(shù)設置默認值。
掌握變量的作用域,能夠在函數(shù)中正確使用變量。
了解可變函數(shù)和匿名函數(shù)的概念,能夠說出什么是可變函數(shù)和匿名函數(shù)。
掌握函數(shù)遞歸調用的實現(xiàn)方式,能夠遞歸調用函數(shù)。學習目標/Target
掌握字符串函數(shù)、數(shù)學函數(shù)、時間和日期函數(shù)的使用方法,能夠使用這些函數(shù)對
字符串、數(shù)值、時間和日期進行處理。
了解數(shù)組的概念,能夠說出數(shù)組的分類。
掌握數(shù)組的基本使用和遍歷,能夠定義、新增、訪問、刪除和遍歷數(shù)組。
掌握數(shù)組和字符串的轉換方法,能夠使用explode()函數(shù)和implode()函數(shù)完成數(shù)組
和字符串的轉換。
掌握基本數(shù)組函數(shù)、數(shù)組排序函數(shù)和數(shù)組檢索函數(shù)的使用方法,能夠使用這些函數(shù)
完成對數(shù)組的合并、分割、排序和檢索。章節(jié)概述/Summary在PHP中,函數(shù)用于封裝重復使用的代碼。將代碼封裝成函數(shù)后,在實現(xiàn)相同的功能時,直接調用函數(shù)即可。使用函數(shù)可以避免編寫重復的代碼,不僅可減少工作量,也有利于代碼的維護。數(shù)組用于存儲一組數(shù)據(jù),從而方便開發(fā)人員對一組數(shù)據(jù)進行批量處理。利用數(shù)組函數(shù)可以實現(xiàn)數(shù)組的遍歷、排序和檢索等操作。本章將對函數(shù)和數(shù)組進行詳細講解。目錄/Contents3.13.23.3函數(shù)數(shù)組常用數(shù)組函數(shù)函數(shù)3.1
先定一個小目標!掌握函數(shù)的定義和調用,能夠根據(jù)需求定義和調用函數(shù)。3.1.1函數(shù)的定義和調用在PHP中,開發(fā)人員可以根據(jù)功能需求定義函數(shù)。語法格式function函數(shù)名([參數(shù)1,參數(shù)2,…]){
函數(shù)體}3.1.1函數(shù)的定義和調用function是聲明函數(shù)使用的關鍵字,不能省略。函數(shù)名的命名規(guī)則與標識符相同,且函數(shù)名唯一,不能重復。參數(shù)是外部傳遞給函數(shù)的值,它是可選的,多個參數(shù)之間使用英文逗號“,”分隔。函數(shù)體是實現(xiàn)指定功能的代碼,在函數(shù)體中使用return關鍵字返回函數(shù)的返回值。當函數(shù)定義好后,若要使用函數(shù),需要對函數(shù)進行調用。語法格式函數(shù)名([參數(shù)1,參數(shù)2,…])3.1.1函數(shù)的定義和調用定義sum()函數(shù)實現(xiàn)求兩個數(shù)的和:functionsum($a,$b){$result=$a+$b;return$result; //返回執(zhí)行結果}echosum(23,45); //調用函數(shù),輸出結果:683.1.1函數(shù)的定義和調用
先定一個小目標!掌握設置函數(shù)參數(shù)的默認值的方式,能夠給函數(shù)的參數(shù)設置默認值。3.1.2設置函數(shù)參數(shù)的默認值定義函數(shù)時為函數(shù)的參數(shù)設置默認值,調用函數(shù)時未傳遞參數(shù),則會使用參數(shù)的默認值。設置函數(shù)參數(shù)默認值的示例代碼:functionsay($p,$con='says"Hello"'){return"$p$con";}echosay('Tom'); //輸出結果:Tomsays"Hello"注意:函數(shù)參數(shù)設置默認值后,該參數(shù)就是可選參數(shù),可選參數(shù)必須放在非可選參數(shù)的右側。3.1.2設置函數(shù)參數(shù)的默認值如果需要在函數(shù)中修改參數(shù)值,可以通過函數(shù)參數(shù)的引用傳遞來實現(xiàn),即引用傳參,在參數(shù)前添加&符號即可。多學一招:引用傳參引用傳參functionextra(&$var){$var='fruit';}$var='food';extra($var);echo$var; //輸出結果:fruit
先定一個小目標!掌握變量的作用域,能夠在函數(shù)中正確使用變量。3.1.3變量的作用域變量只有在定義后才能夠被使用,但這并不意味著定義變量后就可以隨時使用變量。變量只可以在其作用范圍內被使用,這個作用范圍稱為變量的作用域。在函數(shù)中定義的變量稱為局部變量,在函數(shù)外定義的變量稱為全局變量。函數(shù)執(zhí)行完畢后,局部變量會被釋放。3.1.3變量的作用域局部變量和全局變量的使用:functiontest(){$sum=36; //局部變量
return$sum;}$sum=0; //全局變量echotest(); //輸出結果:36echo$sum; //輸出結果:03.1.3變量的作用域如果想在函數(shù)執(zhí)行完畢后依然保留局部變量的值,利用static關鍵字在函數(shù)中將變量聲明為靜態(tài)變量。定義實現(xiàn)計數(shù)功能的函數(shù)num():多學一招:靜態(tài)變量靜態(tài)變量functionnum(){
static$i=1;echo$i;++$i;}第1次調用num()函數(shù)輸出1,第2次調用num()函數(shù)輸出2,依次類推
先定一個小目標!了解可變函數(shù)的概念,能夠說出什么是可變函數(shù)。3.1.4可變函數(shù)在程序中,當需要根據(jù)運行時的條件或參數(shù)來動態(tài)選擇要調用的函數(shù)時,可以使用可變函數(shù)。可變函數(shù)是在變量名的后面添加小括號“()”,讓其變成函數(shù)的形式,PHP會自動尋找與變量值同名的函數(shù),并且嘗試執(zhí)行它。3.1.4可變函數(shù)應用可變函數(shù)的示例代碼:functionshout(){echo'comeon';}$funcname='shout'; //定義變量,其值是函數(shù)的名稱echo$funcname(); //調用可變函數(shù)3.1.4可變函數(shù)在PHP中,有一些語言構造器的用法和函數(shù)相似,但是語言構造器不能通過可變函數(shù)的方式調用。常用的語言構造器:腳下留心:區(qū)分語言構造器和函數(shù)區(qū)分語言構造器和函數(shù)echoprintexitdieincluderequireinclude_oncerequire_onceissetunsetarraylist
先定一個小目標!3.1.5匿名函數(shù)了解匿名函數(shù)的概念,能夠說出什么是匿名函數(shù)。匿名函數(shù)就是沒有函數(shù)名稱的函數(shù),使用匿名函數(shù)無須考慮函數(shù)命名沖突的問題。$sum=function($a,$b){ //定義匿名函數(shù)
return$a+$b;};echo$sum(100,200); //輸出結果:300在匿名函數(shù)中通過use關鍵字使用外部的變量:$c=100;$sum=function($a,$b)use($c){return$a+$b+$c;};echo$sum(100,200); //輸出結果:4003.1.5匿名函數(shù)匿名函數(shù)還可以作為回調函數(shù)使用?;卣{函數(shù)是一種特殊的函數(shù),它可以作為參數(shù)傳遞給其他函數(shù),并在特定事件發(fā)生或特定條件滿足時被調用。functioncalculate($a,$b,$func){return$func($a,$b);}echocalculate(100,200,function($a,$b){ //輸出結果:300return$a+$b;});echocalculate(100,200,function($a,$b){ //輸出結果:20000return$a*$b;});匿名函數(shù)作為回調函數(shù)使用,可以增強函數(shù)的靈活性和可擴展性3.1.5匿名函數(shù)
先定一個小目標!掌握遞歸調用函數(shù)的實現(xiàn)方式,能夠使用遞歸調用函數(shù)。3.1.6函數(shù)的遞歸調用遞歸是指在一個函數(shù)體中調用自身的過程,這種函數(shù)稱為遞歸函數(shù)。通過函數(shù)的遞歸調用演示求4的階乘:functionfactorial($n){if($n==1){return1;}return$n*factorial($n-1);}echofactorial(4); //輸出結果:24當$n不等于1時,遞歸調用當前變量$n乘以factorial($n-1),直到$n等于1時,返回1。factorial()函數(shù)的計算過程為4×3×2×1=24。3.1.6函數(shù)的遞歸調用
先定一個小目標!掌握字符串函數(shù)的使用,能夠使用這用這些函數(shù)對字符串進行處理。3.1.7字符串函數(shù)在開發(fā)程序時,經常會涉及對字符串的處理。例如,獲取用戶名稱的首字母、判斷用戶輸入數(shù)據(jù)的長度等。為此,PHP提供了字符串函數(shù),以滿足不同的需求。3.1.7字符串函數(shù)常用的字符串函數(shù):函數(shù)功能描述strlen(string$string)獲取字符串的長度strpos(string$haystack,string$needle,int$offset=0)獲取指定字符串在目標字符串中首次出現(xiàn)的位置strrpos(string$haystack,string$needle,int$offset=0)獲取指定字符串在目標字符串中最后一次出現(xiàn)的位置str_replace(string$search,string$replace,string$subject,int$count)對字符串中的某些字符進行替換substr(string$string,int$start,int$length=null)獲取字符串的子串3.1.7字符串函數(shù)1/2常用的字符串函數(shù):函數(shù)功能描述explode(string$separator,string$string,int$limit=PHP_INT_MAX)使用指定的分割符將目標字符串分割,分割結果是數(shù)組implode(string$separator,array$array)使用指定的連接符將數(shù)組中的元素拼接成字符串trim(string$string,string$characters)去除字符串首尾處的空白字符(或指定的字符串)str_repeat(string$string,int$times)重復字符串strcmp(string$string1,string$string2)比較兩個字符串的大小3.1.7字符串函數(shù)2/21.strlen()函數(shù)strlen()函數(shù)獲取字符串的長度,該函數(shù)的返回值類型是整型。在計算長度時,一個英文字符、一個空格的長度都是1;中文字符的長度取決于字符集,在UTF-8字符集中一個中文字符的長度為3,在GBK字符集中一個中文字符的長度為2。echostrlen('abc'); //輸出結果:3echostrlen('中國'); //輸出結果:6echostrlen('PHP'); //輸出結果:53.1.7字符串函數(shù)2.substr()函數(shù)substr()函數(shù)用于獲取字符串的子串,該函數(shù)的第1個參數(shù)是待處理的字符串,第2個參數(shù)是字符串開始截取的位置,第3個參數(shù)是截取字符串的長度。substr()函數(shù)的第2個參數(shù)和第3個參數(shù)的使用說明:第2個參數(shù)為負數(shù)n時,表示從待處理字符的結尾處向左數(shù)第|n|個字符開始。省略第3個參數(shù)時,表示截取到字符串的結尾。第3個參數(shù)為負數(shù)n時,表示從截取后的字符串的末尾處去掉|n|個字符。echosubstr('welcome',3); //輸出結果:comeechosubstr('welcome',0,2); //輸出結果:weechosubstr('welcome',3,-1); //輸出結果:comechosubstr('welcome',-4,-1); //輸出結果:com3.1.7字符串函數(shù)3.str_replace()函數(shù)str_replace()函數(shù)用于對字符串中的字符進行替換操作,第1個參數(shù)表示目標字符串;第2個參數(shù)表示替換字符串;第3個參數(shù)表示執(zhí)行替換的字符串;第4個參數(shù)是可選參數(shù),用于保存字符串被替換的次數(shù)。echostr_replace('e','E','welcome',$count); //輸出結果:wElcomEecho$count; //輸出結果:23.1.7字符串函數(shù)4.strcmp()函數(shù)strcmp()函數(shù)用于比較兩個字符串,根據(jù)字符的ASCII值進行比較。該函數(shù)的兩個參數(shù)是待比較的字符串,函數(shù)的返回值有-1、0、1,具體介紹如下。當?shù)谝粋€字符串小于第二個字符串時,返回結果為-1。當?shù)谝粋€字符串等于第二個字符串時,返回結果為0。當?shù)谝粋€字符串大于第二個字符串時,返回結果為1。print_r(strcmp('A','a')); //輸出結果:-1print_r(strcmp('A','A')); //輸出結果:0print_r(strcmp('a','A')); //輸出結果:13.1.7字符串函數(shù)
先定一個小目標!3.1.8數(shù)學函數(shù)掌握數(shù)學函數(shù)的使用,能夠使用這些函數(shù)對數(shù)值進行處理。在開發(fā)程序時,經常會涉及對數(shù)據(jù)的運算。例如,對一個數(shù)進行四舍五入、求絕對值等。為此,PHP提供了數(shù)學函數(shù),以滿足不同的需求。3.1.8數(shù)學函數(shù)常用的數(shù)學函數(shù):函數(shù)功能描述函數(shù)功能描述abs(int|float$num)絕對值min(mixed$value,…)返回最小值ceil(int|float$num)向上取最接近的整數(shù)pi()返回圓周率的值floor(int|float$num)向下取最接近的整數(shù)pow(mixed$num,mixed$exponent)返回數(shù)的冪fmod(float$num1,float$num2)返回除法運算的浮點數(shù)余數(shù)sqrt(float$num)返回數(shù)的平方根is_nan(float$num)判斷是否為合法數(shù)值round(int|float$num,int$precision=0,int$mode)對浮點數(shù)進行四舍五入max(mixed$value,…)返回最大值rand(int$min,int$max)返回隨機整數(shù)3.1.8數(shù)學函數(shù)數(shù)學函數(shù)的使用方法:echoceil(5.2); //輸出結果:6echofloor(7.8); //輸出結果:7echorand(1,20); //隨機輸出1到20之間的整數(shù)3.1.8數(shù)學函數(shù)
先定一個小目標!3.1.9時間和日期函數(shù)掌握時間和日期函數(shù)的使用,能夠使用這些函數(shù)對時間和日期進行處理。在開發(fā)Web應用程序時,經常會涉及對時間和日期的處理。例如,倒計時、用戶登錄時間、訂單創(chuàng)建時間等。為此,PHP提供了時間和日期函數(shù),以滿足不同的需求。3.1.9時間和日期函數(shù)常用的時間和日期函數(shù):函數(shù)功能描述time()獲取當前的UNIX時間戳date(string$format,int$timestamp)格式化UNIX時間戳mktime(int$hour,int$minute=null,int$second=null,int$month=null,int$day=null,int$year=null)獲取指定日期的UNIX時間戳strtotime(string$datetime,int$baseTimestamp)將字符串轉化成UNIX時間戳microtime(bool$float)獲取當前UNIX時間戳和微秒數(shù)3.1.9時間和日期函數(shù)時間和日期函數(shù)的使用方法:echotime(); //輸出結果:1687311094echodate('Y-m-d'); //輸出結果:2023-06-21echomicrotime(); //輸出結果:0.391463001687311094echomicrotime(true); //輸出結果:1687311094.39153.1.9時間和日期函數(shù)
先定一個小目標!掌握函數(shù)的使用,能夠根據(jù)需求實現(xiàn)獲取文件擴展名。3.1.10【案例】獲取文件擴展名在實現(xiàn)文件上傳功能時,經常需要判斷用戶上傳的文件類型,以確保其符合要求。例如,某網站只允許上傳JPG格式的商品圖片,因此需要獲取上傳文件的擴展名進行判斷。下面通過自定義函數(shù)和字符串函數(shù)來實現(xiàn)獲取文件擴展名的功能。
案例需求3.1.10【案例】獲取文件擴展名①創(chuàng)建自定義函數(shù),獲取文件的擴展名,該函數(shù)接收一個參數(shù),用于傳遞文件的名稱。②在函數(shù)體內使用字符串函數(shù)來獲取文件的擴展名。首先使用strrpos()函數(shù)獲取文件名中最后一個“.”出現(xiàn)的位置,然后使用substr()函數(shù)截取從該位置到字符串末尾的內容,最后使用return關鍵字返回函數(shù)的處理結果。③定義變量保存需要處理的文件名,調用自定義函數(shù)時傳入該變量,將自定義函數(shù)的處理結果保存到另一個變量中。④將處理結果輸出到頁面,并運行程序查看獲取的文件擴展名。
實現(xiàn)思路3.1.10【案例】獲取文件擴展名數(shù)組3.2
先定一個小目標!了解數(shù)組的概念,能夠說出數(shù)組的分類。3.2.1初識數(shù)組數(shù)組是用于存儲一組數(shù)據(jù)的集合。數(shù)組中的數(shù)據(jù)稱為數(shù)組元素,每個數(shù)組元素由鍵(Key)和值(Value)構成。其中,鍵用于唯一標識數(shù)組元素;值為數(shù)組元素的內容。3.2.1初識數(shù)組數(shù)組分類索引數(shù)組關聯(lián)數(shù)組3.2.1初識數(shù)組根據(jù)數(shù)組中鍵的數(shù)據(jù)類型劃分:鍵的數(shù)據(jù)類型為整型,索引數(shù)組的鍵默認從0開始,并依次遞增,也可以自己指定鍵。鍵的數(shù)據(jù)類型為字符串型,關聯(lián)數(shù)組的鍵和值之間有一定的業(yè)務邏輯。數(shù)組分類一維數(shù)組三維數(shù)組3.2.1初識數(shù)組根據(jù)數(shù)組的維度劃分:數(shù)組元素的值是非數(shù)組的數(shù)據(jù)二維數(shù)組……數(shù)組元素的值是一個一維數(shù)組數(shù)組元素的值是一個二維數(shù)組,也被稱為多維數(shù)組
先定一個小目標!掌握數(shù)組的基本使用,能夠定義、新增、訪問、刪除數(shù)組。3.2.2數(shù)組的基本使用1.定義數(shù)組使用array()語言構造器和短數(shù)組定義法定義數(shù)組。(1)array()語言構造器使用array()語言構造器定義數(shù)組,將數(shù)組元素放在小括號中,鍵和值使用=>連接,數(shù)組元素之間使用逗號分隔。定義索引數(shù)組時可以省略鍵和=>,PHP會自動為索引數(shù)組添加從0開始的鍵。$info=array('id'=>1,'name'=>'Tom');$fruit=array(1=>'apple',3=>'pear');$num=array(1,4,7,9);$mix=array('tel'=>110,'help',3=>'msg');3.2.2數(shù)組的基本使用(2)短數(shù)組定義法短數(shù)組定義法將array()替換為“[]”。$info=['id'=>1,'name'=>'Tom'];$num=[1,4,7,9];定義數(shù)組時需要注意以下兩點:數(shù)組元素的鍵可以是整型和字符串型,如果是其他類型,則會進行數(shù)據(jù)類型轉換。浮點型和布爾型會被轉換成整型,NULL會被轉換成空字符串。若數(shù)組存在相同的鍵,后面的元素值會覆蓋前面的元素值。3.2.2數(shù)組的基本使用2.新增數(shù)組元素通過直接值賦給數(shù)組變量來新增數(shù)組元素。當不指定數(shù)組元素的鍵時,鍵默認從0開始,依次遞增。當指定數(shù)組元素的鍵時,會使用指定的鍵。如果再次添加數(shù)組元素沒有指定鍵,會自動將數(shù)組元素的最大整數(shù)鍵加1。$arr[]='PHP'; //賦值結果:$arr[0]='PHP'$arr[]='Java'; //賦值結果:$arr[1]='Java' $arr[3]='C語言'; //賦值結果:$arr[3]='C語言'$arr[5]='C++'; //賦值結果:$arr[5]='C++'$arr['sub']='iOS'; //賦值結果:$arr['sub']='iOS'$arr[]='網頁平面'; //賦值結果:$arr[6]='網頁平面'3.2.2數(shù)組的基本使用3.訪問數(shù)組元素數(shù)組元素的鍵是數(shù)組元素的唯一標識,通過數(shù)組元素的鍵可以獲取該元素的值。$info=['id'=>1,'name'=>'Tom'];echo$info['id']; //輸出結果:1echo$info['name']; //輸出結果:Tom數(shù)組元素比較多時,可以使用print_r()或var_dump()輸出數(shù)組中的所有元素。$info=['id'=>1,'name'=>'Tom'];print_r($info);//輸出結果:Array([id]=>1[name]=>Tom)var_dump($info);//輸出結果:array(2){["id"]=>int(1)["name"]=>string(3)"Tom"}3.2.2數(shù)組的基本使用4.刪除數(shù)組元素unset()語言構造器既可以刪除數(shù)組中的某個元素,又可以刪除整個數(shù)組。$fruit=['apple','pear'];unset($fruit[1]);print_r($fruit); //輸出結果:Array([0]=>apple)unset($fruit);print_r($fruit); //輸出結果:Warning:Undefinedvariable:$fruit…3.2.2數(shù)組的基本使用多學一招:判斷數(shù)組元素是否存在判斷數(shù)組元素是否存在使用數(shù)組中的某個元素時,如果元素不存在,運行程序會出現(xiàn)錯誤。使用isset()語言構造器判斷數(shù)組元素是否存在,函數(shù)返回值true表示元素存在,false表示元素不存在。$fruit=['apple','pear'];unset($fruit[1]);var_dump(isset($fruit[1]));//輸出結果:bool(false)
先定一個小目標!3.2.3遍歷數(shù)組掌握數(shù)組的遍歷,能夠使用foreach()語句遍歷數(shù)組。遍歷數(shù)組是指依次訪問數(shù)組中的每個元素,通常使用foreach語句遍歷數(shù)組。3.2.3遍歷數(shù)組語法格式1foreach(待遍歷的數(shù)組as$key=>$value){
循環(huán)體}語法格式2foreach(待遍歷的數(shù)組as$value){
循環(huán)體}當不需要使用數(shù)組的鍵時,可以省略$key使用foreach遍歷數(shù)組:$fruit=['apple','pear'];foreach($fruitas$key=>$value){ echo$key.'-'.$value.''; //輸出結果:0-apple1-pear}3.2.3遍歷數(shù)組
先定一個小目標!掌握數(shù)組和字符串的轉換方法,能夠使用explode()函數(shù)和implode()函數(shù)完成轉換。3.2.4數(shù)組和字符串的轉換在PHP開發(fā)中,靈活使用數(shù)組可以提高程序開發(fā)效率。數(shù)組和字符串的轉換的兩個操作:將字符串分割成數(shù)組將數(shù)組合并成字符串通過explode()函數(shù)和implode()函數(shù)可以實現(xiàn)這兩個操作,下面講解這兩個函數(shù)的使用。3.2.4數(shù)組和字符串的轉換1.explode()函數(shù)explode()函數(shù)使用分割符將目標字符串分割,第1個參數(shù)是分割符,不能為空字符串;第2個參數(shù)是目標字符串;第3個參數(shù)是可選參數(shù),表示返回的數(shù)組中最多包含的元素個數(shù),該參數(shù)的值有3種情況,具體介紹如下:當其為正數(shù)m時,返回數(shù)組中的m個元素。當其為負數(shù)n時,返回除最后的|n|個元素外的所有元素。當其為0時,則把它當作1處理。3.2.4數(shù)組和字符串的轉換var_dump(explode('n','banana'));//輸出結果:array(3){[0]=>string(2)"ba"[1]=>string(1)"a"[2]=>string(1)"a"}1使用目標字符串中存在的字符當作分割符var_dump(explode('c','banana'));//輸出結果:array(1){[0]=>string(6)"banana"}2使用目標字符串中不存在的字符當作分割符3.2.4數(shù)組和字符串的轉換var_dump(explode('n','banana',2));//輸出結果:array(2){[0]=>string(2)"ba"[1]=>string(3)"ana"}3explode()函數(shù)的第3個參數(shù)是正數(shù)var_dump(explode('n','banana',-2));//輸出結果:array(1){[0]=>string(2)"ba"}4explode()函數(shù)的第3個參數(shù)是負數(shù)var_dump(explode('n','banana',0));//輸出結果:array(1){[0]=>string(6)"banana"}5explode()函數(shù)的第3個參數(shù)為03.2.4數(shù)組和字符串的轉換2.implode()函數(shù)implode()函數(shù)用于通過指定的連接符將數(shù)組中的元素拼接成字符串,該函數(shù)的第1個參數(shù)是連接符,第2個參數(shù)是待處理的數(shù)組。示例代碼$arr=[1,2,3];var_dump(implode(',',$arr)); //輸出結果:string(5)"1,2,3"3.2.4數(shù)組和字符串的轉換
先定一個小目標!掌握數(shù)組的使用,能夠根據(jù)需求實現(xiàn)訂貨單。3.2.5【案例】訂貨單實現(xiàn)訂貨單功能,使用數(shù)組保存商品信息,計算出每類商品的總價和所有商品的總價,在頁面輸出商品信息、單價和總價。
案例需求379元購買3個799元購買2個589元購買5個主板顯卡硬盤3.2.5【案例】訂貨單①創(chuàng)建order.php,定義數(shù)組保存商品的名稱、單價、產地和購買數(shù)量。②使用foreach語句遍歷數(shù)組,并將其顯示在表格中。③計算每類商品的總價和所有商品的總價,輸出到頁面中。
實現(xiàn)思路3.2.5【案例】訂貨單常用數(shù)組函數(shù)3.3
先定一個小目標!掌握基本數(shù)組函數(shù)的使用,能夠使用這些數(shù)組完成對數(shù)組的合并、分割等操作。3.3.1基本數(shù)組函數(shù)PHP常用的基本數(shù)組函數(shù)有count()、range()、array_merge()、array_chunk()等。下面對這些基本數(shù)組函數(shù)進行講解。3.3.1基本數(shù)組函數(shù)1.count()函數(shù)count()函數(shù)計算數(shù)組中元素的個數(shù),第1個參數(shù)是要計算的數(shù)組。第2個參數(shù)是計算的維度,默認值0表示計算一維數(shù)組的元素個數(shù);1表示計算二維數(shù)組的元素個數(shù),依此類推。示例代碼$stu=[['Tom','male',18],['Alice','female',15],['Julia','female',14]];echocount($stu); //輸出結果:3echocount($stu,1); //輸出結果:123.3.1基本數(shù)組函數(shù)2.range()函數(shù)range()函數(shù)根據(jù)范圍創(chuàng)建數(shù)組,通常使用字母或數(shù)字指定范圍,第1個參數(shù)是起始值;第2個參數(shù)是結束值;第3個參數(shù)是可選參數(shù),用于定義起始值和結束值的增量,默認為1。示例代碼$arr=range('a','c');print_r($arr);//輸出結果:Array([0]=>a[1]=>b[2]=>c)$data=range(0,10,3);print_r($data);//輸出結果:Array([0]=>0[1]=>3[2]=>6[3]=>9)3.3.1基本數(shù)組函數(shù)3.array_merge()函數(shù)array_merge()函數(shù)用于合并一個或多個數(shù)組,如果合并的數(shù)組中有相同的字符串鍵名,則后面的值覆蓋前面的值;如果合并的數(shù)組中有相同的數(shù)字鍵名,將之附加到合并結果中。示例代碼$arr1=['food'=>'tea',2,4];$arr2=['a','food'=>'Cod','type'=>'jpg',4];$result=array_merge($arr1,$arr2);//輸出結果:Array([food]=>Cod[0]=>2[1]=>4[2]=>a[type]=>jpg[3]=>4)print_r($result);3.3.1基本數(shù)組函數(shù)4.array_chunk()函數(shù)array_chunk()函數(shù)將一個數(shù)組分割成多個,第1個參數(shù)是待分割數(shù)組,第2個參數(shù)是分割后每個數(shù)組中元素的個數(shù),第3個參數(shù)指定是否保留原數(shù)組的鍵名,默認值false表示不保留原數(shù)組鍵名,分割后數(shù)組的鍵從0開始,值為true表示保留待分割數(shù)組中原有的鍵名。示例代碼$arr=['one'=>1,'two'=>2,'three'=>3];//輸出結果:Array([0]=>Array([0]=>1[1]=>2)[1]=>Array([0]=>3))print_r(array_chunk($arr,2));//輸出結果:Array([0]=>Array([one]=>1[two]=>2)[1]=>Array([three]=>3))print_r(array_chunk($arr,2,true));3.3.1基本數(shù)組函數(shù)
先定一個小目標!3.3.2數(shù)組排序函數(shù)掌握數(shù)組排序函數(shù)的使用,能夠使用這些函數(shù)完成數(shù)組排序。通常對數(shù)組排序,需要先遍歷數(shù)組,再比較數(shù)組中的每個元素,最終完成數(shù)組的排序。為了方便對數(shù)組排序,PHP內置了數(shù)組排序函數(shù),不需要遍歷數(shù)組即可完成排序。3.3.2數(shù)組排序函數(shù)常用的數(shù)組排序函數(shù):函數(shù)功能描述sort(array$array,int$flags)對數(shù)組升序排列rsort(array$array,int$flags)對數(shù)組降序排列ksort(array$array,int$flags)根據(jù)數(shù)組鍵名升序排列krsort(array$array,int$flags)根據(jù)數(shù)組鍵名降序排列asort(array$array,int$flags)對數(shù)組升序排列并保持索引關系arsort(array$array,int$flags)對數(shù)組降序排列并保持索引關系shuffle(array$array)打亂數(shù)組順序array_reverse(array$array,bool$preserve_keys)返回元素順序相反的數(shù)組3.3.2數(shù)組排序函數(shù)使用sort()函數(shù)和rsort()函數(shù)演示數(shù)組排序:$arr=['dog','lion','cat'];sort($arr);print_r($arr); //輸出結果:Array([0]=>cat[1]=>dog[2]=>lion)rsort($arr);print_r($arr); //輸出結果:Array([0]=>lion[1]=>dog[2]=>cat)3.3.2數(shù)組排序函數(shù)
先定一個小目標!3.3.3數(shù)組檢索函數(shù)掌握數(shù)組
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 白盒測試的課程設計
- 白葉窗剪輯課程設計
- 2024年抗血小板藥項目規(guī)劃申請報告
- 病毒病防治課程設計
- 2024年甲基叔丁基醚項目提案報告模板
- 班級集體特色課程設計
- 2024年離合器助力器項目申請報告
- 玻纖布掛油封裂施工方案
- 玻璃鋼結構研究報告
- 自走式停車樓建設項目可行性研究報告模板-備案拿地
- MOOC 設計原理與方法-東南大學 中國大學慕課答案
- WHT 78.4-2022 演出安全 第4部分:舞臺音響安全-PDF解密
- 《勿忘國恥.強國有我》國家公祭日主題班會課件
- UML課程設計-網上購物系統(tǒng)
- 網絡食品安全監(jiān)管
- 圍手術期管理規(guī)范
- 2022版義務教育(道德與法治)課程標準(附課標解讀)
- 腰肌勞損知識課件
- 2024年公安機關人民警察高級執(zhí)法資格考試試卷含答案(案例分析題 論述題)
- Unit8WXYZ(課件)牛津自然拼讀Level1
- (高清版)DZT 0341-2020 礦產地質勘查規(guī)范 建筑用石料類
評論
0/150
提交評論