日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

PHP-----PHP程序设计基础教程----第四章数组

發(fā)布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP-----PHP程序设计基础教程----第四章数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4.1 初識數組

4.1.1 什么是數組

  數組是一個可以存儲一組或者一系列數值的變量。在PHP中,數組中的元素分兩部分,分別為鍵(Key)和值(Value)。其中,“鍵”為元素的識別名稱,也被稱為數組下標,“值”為元素的內容。“鍵”和“值”存在一種對應關系,稱為映射。

  1、索引數組

  下標為整數的數組,即數組的“鍵”為整數,僅僅指示元素在數組中的位置,不表示對應值的含義

  2、關聯數組

  下標為字符串的數組,即數組的“鍵”為字符串,顯示時,以元素的添加順序有關,與下標順序無關

  3、混合數組

  數組的“鍵”既有整數,也有字符串的數組

4.1.2 數組的定義

  1、使用賦值方式定義數組

<?php
//**********定義索引數組**********////方式1:$arr1[0]="歐陽華夏";//姓名$arr1[1]=25;//年齡$arr1[2]="男";//性別$arr1[3]=true;//是否單身echo "<pre>";print_r($arr1);echo "</pre>";/*輸出結果:Array([0] => 歐陽華夏[1] => 25[2] => 男[3] => 1)*///方式2:$arr2[]="歐陽華夏";//姓名$arr2[]=25;//年齡$arr2[]="男";//性別$arr2[]=true;//是否單身echo "<pre>";print_r($arr2);echo "</pre>";/*輸出結果:Array([0] => 歐陽華夏[1] => 25[2] => 男[3] => 1)*///方式3$arr3=[0=>"歐陽華夏",1=>25,3=>"男",4=>true];echo "<pre>";print_r($arr3);echo "</pre>";/*輸出結果:Array([0] => 歐陽華夏[1] => 25[2] => 男[3] => 1)*///**********定義關聯數組**********////方式4:$arr4["name"]="歐陽華夏";//姓名$arr4["age"]=25;//年齡$arr4["sex"]="男";//性別$arr4["is_Single"]=true;//是否單身echo "<pre>";print_r($arr4);echo "</pre>";/*輸出結果:Array([name] => 歐陽華夏[age] => 25[sex] => 男[is_Single] => 1)*///方式5$arr5=["name"=>"歐陽華夏","age"=>25,"sex"=>"男","is_Single"=>true];echo "<pre>";print_r($arr5);echo "</pre>";輸出結果:/*Array([name] => 歐陽華夏[age] => 25[sex] => 男[is_Single] => 1)*/
?>

  在上述示例代碼中,分別定義了索引數組和關聯數組

  ①方式1對應方式4,創(chuàng)建一個數組變量,使用賦值運算符挨個給數組變量賦值

  ②方式2創(chuàng)建數組,賦值時沒有指定“鍵”,使用默認鍵,即“鍵”從0開始

  ③方式3對應方式5,在一個“[]”中使用“=>”符號給數組賦值

  

  2、使用array()函數定義數組

  除了通過賦值方式定義數組外,還可以使用array()函數定義數組,它接收數組的元素作為參數,多個元素之間使用英文逗號分隔;

<?php
//**********定義索引數組**********////方式1$arr1=array("歐陽華夏",28,"男",true);
//**********定義關聯數組**********//$arr2=array("name"=>"歐陽華夏","age"=>28,"sex"=>"男","is_Single"=>true);    
?>

4.1.3 數組元素的獲取

  獲取數組中單個元素的值:

  $數組名[鍵名]?

  打印數組的全部值:

<?php
/************************方法1********************************/echo "<pre>";print_r("數組名")echo "</pre>";
/************************方法2********************************/echo "<pre>";var_dump("數組名")echo "</pre>";
?>

  PHP提供了print_r()函數和var_dump(),專門用于輸出數組中的所有元素,需要注意一下幾點:

  ①print_r()函數只能打印出來數組中的元素

  ②var_dump()函數在打印數組中元素的同時還能打印出元素中值的數據類型

  ③在上述代碼中,都有兩行echo "<pre>"代碼,其中“pre”標簽的作用是用格式化文本輸出。

?4.1.4 刪除數組

  PHP中提供了unset()函數用于刪除數組的元素,使用規(guī)則:

  ①語法:?unset(數組名[索引])?

  ②刪除元素后數組不會重建該元素的索引。即未被刪除的元素的索引不會因為刪除了元素而改變

  ③可以刪除整個數組:?unset(數組名)?

4.1.5 數組操作符

  數組這種符合類型的數據可以進行運算,數組的運算通過數組操作數實現。見表4-1:

  表4-1 數組操作運算符

運算符

含義

示例

+

聯合

$a+$b$a$b的聯合

==

相等

$a==$b;如果$a$b具有相同的鍵值對,則為true

===

全等

$a===$b;如果$a$b具有相同的鍵值對且順序和類型都相同則為true

!=

不等

$a!=$b;如果$a不等于$b,則為true

<>

不等

$a<>$b;如果$a不等于$b,則為true

!==

不全等

$a!===$b;如果$a不全等于$b,則為true

?  注:”+“為聯合運算符,用于合并數組。如果出現下標相同的元素,則保留第一個數組內的元素。

?

4.2 數組的常見操作

4.2.1 數組指針

  對數組中的元素進行訪問過程中需要用到數組指針。數組指針用于指向數組中的某個元素,默認情況下指向數組的第一個元素。注意:一個數組只有一個數組指針。具體數組指針見表4-2:

表4-2 數組指針操作函數

函數名

作用

mixd current(array $array)

獲取數組中當前元素的值,如果內部指針超出數組的末端,則返回false

mixd key(array $array)

獲取當前元素的鍵名

mixd next(array $array)

將數組的內部指針向前移動一位

mixd prev(array $array)

將數組的內部指針倒回一位

mixd end(array $array)

將數組的內部指針指向最后一個元素

mixd reset(array $array)

重置指針,即將數組的指針指向第一個元素

4.2.2 數組遍歷

  在PHP中使用foreach語句實現數組的遍歷:

  無鍵名遍歷

foreach(數組名 as $Value){ //循環(huán)體 
}

  鍵值對遍歷

foreach(數組名 as $Key => $Value){//循環(huán)體
}

4.2.3 數組排序----冒泡排序

?

 1 <?php
 2     //********************冒泡排序*******************//
 3     $array=[9,8,2,5,3];
 4     /*從小到大
 5     冒泡排序思路:
 6     1、從第一個元素開始,將相鄰的兩個元素依次進行比較,直到最后兩個元素完成比較。如果前一個元素比后一個元素大,交換位置,整個
 7     過程完成后,數組中最后一個元素就是最大值,這就完成了第一輪比較
 8     2、除了最后一個元素,將剩余的元素進行兩兩比較,過程與第一步相似,這樣就可以將數組中第二大的數放在倒數第二個位置
 9     3、依次類推,持續(xù)對元素進行兩兩比較,直到沒有任何一對元素需要比較為止
10     */
11    
12     for($i=0;$i<count($array)-1;$i++){
13           //最外層循環(huán),控制比較的輪數,很明顯,冒泡排序比較輪數=數組長度-1
14           for($j=0;$j<count($array)-1-$i;$j++){
15               //里層循環(huán)控制相鄰的兩個數,$j的取值范圍要注意,沒進行一輪,$j的取值小一次
16               if($array[$j]>$array[$j+1]){
17                   $temp=$array[$j];
18                   $array[$j]=$array[$j+1];
19                   $array[$j+1]=$temp;
20               }
21           }
22    }

?

4.2.4 數組元素查找

?  1、順序查找法----------查找一個數組中是否包含數字8,如果包含,返回當前元素的索引,否則返回“查無此數”;

 1 <?php
 2     //定義數組
 3     $arr=array(2,3,5,8,9);
 4     //定義函數,查找數字8
 5     function searchIndex($Array,$Value){
 6         for($i=0;$i<count($Array);$i++){
 7             if($Array[$i]===$Value){
 8                 return $i ;
 9             }
10         }
11         return "查無此數";
12     }
13     
14     $result=searchIndex($arr,8);
15     echo $result;
16 ?>

  2、二分查找法-----查找一個數組中是否包含元素5,如果存在,則輸出下標,否則返回“查無此數”

 1 <?php
 2     //定義數組,
 3     $arr=array(2,3,5,8,9,11,16);
 4     //定義函數
 5     function binarySearch($Array,$Value,$Start_index,$End_index){
 6         if($Start_index > $End_index){
 7             return "查無此數";
 8         }
 9         //獲取中間元素下標
10         $Mid_index=round(($Start_index + $End_index)/2);
11         if($Array[$Mid_index] > $Value){//元素在中間元素的左邊
12             //從左邊查找
13             binarySearch($Array,$Value,$Start_index,$Mid_index-1);
14         }else if($Array[$Mid_index] < $Value){//元素在中間元素右邊
15             //從右邊查找
16             binarySearch($Array,$Value,$Mid_index+1,$End_index);
17         }else{//查找元素和中間元素值相同
18             echo $Mid_index;
19         }
20     }
21     binarySearch($arr,5,0,count($arr)-1);
22 ?> 

4.3 數組的常用函數

?4.3.1 基本函數

  1、is_array()函數

?  is_array()函數的作用是判斷一個變量是否是一個數組,如果是數組,返回true,否則返回false。

  ?bool is_array(mixed $var);?

  is_array()函數接受一個mixed類型的變量var,然后判斷這個變量是不是數組。

?

  2、count()函數

  count()函數的作用是用于計算數組中元素的個數。

  ?int count(mixed $var [,int $mode]);?

  在上述聲明中,count()函數接收兩個參數,其中$var參數是必須的,表示傳入的數組對象;$mode參數是可選參數,值為0或者1。
  $mode=0----->只顯示一維數組的個數;
  $mode=1----->遞歸計算多維數組中每個元素的個數;

  示例如下:

 1 <?php
 2     //一維數組$arr1
 3     $arr1=array("百度","新浪","搜狐","網易","傳智");
 4     //輸出長度
 5     echo '一維數組$arr1的長度是:' . count($arr1) . "<br/>";
 6     
 7     //二維數組
 8     $arr2=array(
 9         '$arr3'=>array("a","b","c","d","e"),
10         '$arr4'=>array("1","2","3","4","5")
11     );
12     //輸出長度
13     
14     //所有元素
15     echo '$arr2的所有元素的個數:' . count($arr2,1) . "<br/>";//計算二維數組中所有元素的個數,12個
16     //一維元素
17     echo '$arr2的一維元素的個數:' . count($arr2) . "<br/>";//計算二維數組中所有一維元素的個數,2個
18 ?>

?

?  3、array_unique()函數

  array_unique()函數的作用是移出數組中的重復元素。

  ?array array_unique(array $array);?

  在上述聲明中,array_unique()函數接受一個數組,去除重復元素后返回一個新的數組。在使用該函數時,首先將數組元素的值作為字符串排序,然后對每個值只保留第一個鍵名,忽略后面所有的鍵名。

 1 <?php
 2     $input=array("a"=>"green","red","b"=>"green","blue","red");
 3     echo "<pre>";
 4     print_r($input);
 5     //調用函數
 6     $result=array_unique($input);
 7     print_r($result);
 8     echo "</pre>";
 9     
10     /*運行結果
11     Array
12     (
13         [a] => green
14         [0] => red
15         [b] => green
16         [1] => blue
17         [2] => red
18     )
19     Array
20     (
21         [a] => green
22         [0] => red
23         [1] => blue
24     )
25     */
26 ?>

4.3.2 鍵值對的相關函數

?  1、array_search()

  array_search()函數用于獲取數組中元素對應的鍵名。

 ? ??array array_search(mixed $needle,array $haystack [,bool $strict]);?

  在上述聲明中,$needle表示在數組中要查找的值,$haystack表示被查詢的數組。$strict參數是可選的,當值為true時,就會在$haystack數組中檢查$needle的類型。

1 <?php
2     $array=array(0=>"blue",1=>"red",2=>"green",3=>"red");
3     echo "green對應的鍵為:";
4     echo array_search("green",$array);
5     //結果:green對應的鍵為:2
6 ?>

  當被查詢的元素在數組中出現兩次以上時,那么array_search()函數返回第一個匹配的鍵名。

?

  2、array_keys()函數

  array_keys()函數同樣用于獲取數組中元素對應的鍵名。不同的是,array_keys()函數可以返回所有匹配的鍵名。

 ? ???array array_keys(array $input [,mixed $search_value [,bool $strict]]); ?

  上述聲明中,$input表示要被查詢的數組;$search_value參數是可選參數,當給$search_value賦值時,函數返回該值的鍵名,否則返回$input數組的所有的鍵名。$strict參數用來進行全等比較,需要傳入一個布爾值,默認為false,如果為true則根據類型返回帶有指定值的鍵名。

 1 <?php
 2     //定義數組arr1
 3     $arr1=array(0=>"ttg","name"=>"dandy");
 4     print_r(array_keys($arr1));                //返回數組中元素的所有鍵名
 5     //Array ( [0] => 0 [1] => name )
 6     print_r(array_keys($arr1,"dandy"));        //獲取數組元素為"dandy"對應的鍵名
 7     // Array ( [0] => name )
 8     
 9     //定義數組arr2
10     $arr2=array(11,12,32,"11");
11     print_r(array_keys($arr2,11));            //獲取元素11(不依賴類型)
12     //Array ( [0] => 0 [1] => 3 )
13     print_r(array_keys($arr2,"11",true));    //獲取字符串類型的元素的"11"
14     // Array ( [0] => 3 )
15 ?>

  array_keys()函數可以根據傳入的參數,返回不同的鍵名。當傳入的參數是一個數組時,則返回所有的鍵。當傳入一個指定數組中某個元素時,返回該元素對應的鍵。

?

4.3.3 排序函數

  PHP提供了多個排序的函數,例如sort()函數、rsort()函數、ksort()函數等。

  以sort()函數為例,講解數組的排序功能。sort()函數的作用就是對數組中的元素按照從小到大的順序進行排序。

  ?bool sort(array $array [,int $sort_flag=sort_regular]);?

  在上面的聲明中,$array參數表示需要排序的數組,$sort_flag是可選參數,sort()函數會根據$sort_flag的值改變數組的排序方式。$sort_flag的取值如表4-3所示:

  表4-3?$sort_flag的取值范圍

取值范圍

排序方式

SORT_REGULAR

默認值,將自動識別數組元素的類型進行排序

SORT_NUMERIC

用于數字元素的排序

SORT_STRING

用于字符串元素的排序

SORT_LOCALE_STRING

跟去當前local設置來把元素當作字符串比較

  示例代碼:

<?php$arr=array("4apple","3banana","1orange","2peach");sort($arr,SORT_NUMERIC);echo "<pre>";print_r($arr);echo "</pre>";/*運行結果:Array([0] => 1orange[1] => 2peach[2] => 3banana[3] => 4apple)*/
?>

?

4.3.4 合并和拆分函數

? 1、array_merge()函數

  array_merge()函數的作用是合并一個或多個數組。

  ?array array_merge(array $array1 [,array $...]);? 

  array_merge()將一個或者多個數組的單元合并起來,一個數組的值附加在另一個數組的后面,返回一個新的數組。
  ①如果輸入的數組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前面的值;
  ②如果數組中包含數字鍵名,后面的值不會覆蓋原來的值,而是附加在數組的后面;
  ③如果數組是數字索引的,則鍵名會以連續(xù)方式重新編排索引。  

 1 <?php
 2     $array1=array("color"=>"red",2,4);
 3     $array2=array("a","b","color"=>"green","shape"=>"trapezoid",4);
 4     $result=array_merge($array1,$array2);
 5     echo "<pre>";
 6     print_r($result);
 7     echo "</pre>";
 8     
 9     /*運行結果:
10     Array
11         (
12             [color] => green
13             [0] => 2
14             [1] => 4
15             [2] => a
16             [3] => b
17             [shape] => trapezoid
18             [4] => 4
19         )
20     */
21 ?>

?

?  2、array_chunk()函數

  函數array_chunk()的作用是將一個數組分割成多個數組。

  ?array array_chunk(array $input,int $size [,bool $preserve_keys]);?  

  上述聲明中,$input表示要分割的數組,$size是分割后每個數組中元素的個數,$preserve_keys是一個可選參數。如果將該參數設置為true,則分割后的數組中元素保留原來的索引,如果將該參數設置為false,則分割后數組中的元素的索引將從零開始。

  代碼如下: 

 1 <?php
 2     $arr=array("cctv-a","cctv-b","cctv-c");
 3     //分割數組
 4     echo "<pre>";
 5     echo "分割后的數組為:" . "<br/>";
 6     print_r(array_chunk($arr,2));
 7     echo "</pre>";
 8     /*運行結果:
 9     分割后的數組為:
10     Array
11     (
12         [0] => Array
13             (
14                 [0] => cctv-a
15                 [1] => cctv-b
16             )
17 
18         [1] => Array
19             (
20                 [0] => cctv-c
21             )
22 
23     )
24     */
25    
26    //第二次分割
27    echo "<pre>";
28    echo "分割后的數組為:" . "<br/>";
29    print_r(array_chunk($arr,2,true));
30    echo "</pre>";
31    /*運行結果:
32   分割后的數組為:
33     Array
34     (
35         [0] => Array
36             (
37                 [0] => cctv-a
38                 [1] => cctv-b
39             )
40 
41         [1] => Array
42             (
43                 [2] => cctv-c
44             )
45 
46     )
47    */
48 ?>

?

?4.3.5 其他函數

?  1、array_rand()函數

?  array_rand()函數的作用是從數組中隨機取出一個或多個元素。

  ?mixed array_rand(array $input [,int $num_req]);?

  array_rand()函數接受一個input參數和一個可選的參數num_req,其中input參數用于指定接受的數組,num_req用于指定取出元素的個數,默認為1。如果只取出一個元素,array_rand()會返回一個隨機元素的鍵名,否則返回一個包含隨機鍵名的數組。

  代碼如下:

 1 <?php
 2     $input=array("科比","姚明","詹姆斯","艾佛森","基德");
 3     echo "<pre>";
 4     echo "隨機獲取一個元素" . "<br/>";
 5     print_r(array_rand($input));
 6     echo "<br/>";
 7     echo "隨機獲取兩個元素" . "<br/>" ;
 8     print_r(array_rand($input,2));
 9     echo "</pre>";
10     
11     /*運行結果:
12     隨機獲取一個元素
13     2
14     隨機獲取兩個元素
15     Array
16     (
17         [0] => 2
18         [1] => 3
19     )
20     */
21 ?>

?

  2、array_reverse()

  array_reverse()函數的作用是返回一個元素順序相反的數組。

  ?array array_reverse(array $array [,bool $preserve_keys]);?

  array_reverse()接受數組array作為輸入并返回一個元素為相反順序的新數組,如果preserve_keys為true,則保留原來的鍵名。

  代碼如下:

 1 <?php
 2     $input=array("ibim",122,array("dell","apple"));
 3     $result=array_reverse($input);
 4     echo "<pre>";
 5     print_r($result);
 6     echo "</pre>";
 7     /*運行結果:
 8     Array
 9     (
10         [0] => Array
11             (
12                 [0] => dell
13                 [1] => apple
14             )
15 
16         [1] => 122
17         [2] => ibim
18     )
19     鍵名被修改
20     */
21    $result_keyed=array_reverse($input,true);
22    echo "<pre>";
23    print_r($result_keyed);
24    echo "</pre>";
25    /*運行結果:
26   Array
27     (
28         [2] => Array
29             (
30                 [0] => dell
31                 [1] => apple
32             )
33 
34         [1] => 122
35         [0] => ibim
36     )
37     鍵名保留不會修改
38    */
39 ?>

轉載于:https://www.cnblogs.com/WangYujie1994/p/10342474.html

總結

以上是生活随笔為你收集整理的PHP-----PHP程序设计基础教程----第四章数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。