首頁 > 後端開發 > php教程 > php學習正式啟航(3)

php學習正式啟航(3)

黄舟
發布: 2023-03-04 11:32:01
原創
963 人瀏覽過

現在說數組
php數組有3種類型

數值數組帶有數字ID 鍵的數組
關聯數組數組中的每個ID 鍵關聯一個值
多維數組包含一個或多個數組的數組

組的聲明

<?php
$a[5];
$a[5]={1,2,3,4,5};
?>
登入後複製

像C語言這種常規的2種在php裡是行不通的

php有個關鍵字array 是用來定義數組的

<?php
$a=array();
?>
登入後複製

這就是定義了一個空數組,不需要指定長度,裡面元素可以動態添加,添加了多少個,這個數組就有多少大,而且可以繼續添加,這點很爽哈

<?php
$a=array();
echo $a;
?>
登入後複製

這樣可以打印a的類型結果是Array

但是這樣的話就會報錯

<?php
$a=array();
echo $a[0];
?>
登入後複製

因為數組是空的

定義數組主要有兩種方法,一種是用array

<?php
$a=array(1,2,3,4,5);
for($i=0;$i<count($a);$i++)
echo $a[$i]."<br/>";
?>
登入後複製

count關鍵字可以計算一個數組有多少個元素

還有一種
還有一種

<?php
$a[0]=&#39;a&#39;;
$a[1]=&#39;b&#39;;
$a[2]=&#39;c&#39;;
for($i=0;$i<count($a);$i++)
echo $a[$i]."<br/>";
?>
登入後複製

直接給變數下標賦值,這個變數就自動成為數組了

但是一定要按下標順序賦值
比如,這樣就是錯的

<?php
$a[0]=&#39;a&#39;;
$a[1]=&#39;b&#39;;
$a[2]=&#39;c&#39;;
$a[5]=&#39;d&#39;;
for($i=0;$i<count($a);$i++)
echo $a[$i]."<br/>";
?>
登入後複製

還有數組裡的元素可以不是同一型別

<?php
$a=array(1,&#39;b&#39;,"hello",1.0);
for($i=0;$i<count($a);$i++)
echo $a[$i]."<br/>";
?>
登入後複製

還有數組裡的元素可以不是同一類型

reee
是不是覺得很強


現在說關聯數組

關聯數組比普通數組更強大了,下標不需要在用數字,而是自己取名字

這就是一種鍵對值的關係,跟java的map**很類似

<?php
$a=array("a"=>1,&#39;b&#39;=>2,"c"=>3);
echo $a["a"]."<br/>";
echo $a[&#39;b&#39;]."<br/>";
echo $a["c"]."<br/>";
?>
登入後複製

注意是=>不是->,裡面的單引號和雙引號可以互換

鍵=>值鍵可以重複但是結果是顯示最後那​​個

<?php
$a=array("a"=>1,&#39;a&#39;=>2,"c"=>3);
echo $a["a"]."<br/>";
echo $a["c"]."<br/>";
?>
登入後複製

打印2 3

還有一個關聯數組的定義,就是上面說過的

<?php
$a["a"]="hello";
$a["b"]="world";
echo $a["a"]."<br/>";
echo $a["b"]."<br/>";
?>
登入後複製

但是下面這樣是錯誤的

<?php
$a["a"]=>"hello";
$a["b"]=>"world";
echo $a["a"]."<br/>";
echo $a["b"]."<br/>";
?>
登入後複製

另外數字也可以作為鍵

<?php
$a["1"]="hello";
$a["2"]="world";
echo $a["1"]."<br/>";
echo $a["2"]."<br/>";
?>
登入後複製

是可行的

php有提示注意,這個不要用

<?php
$a[&#39;a&#39;]="hello";
$a[&#39;b&#39;]="world";
echo $a[a]."<br/>";
echo $a [ b ]";
?>
登入後複製

下面說多維數組
在多維數組中,主數組中的每個元素也是一個數組。在子數組中的每個元素也可以是數組,以此類推

這就是定義了一個多維數組,二維的

<?php
$a=array(array(&#39;a&#39;,1,2),array("hello",3,1.1,));
echo $a[0][0];
?>
登入後複製

按C語言看,就是a[2][3] 不是array有幾個就是幾維了

同樣,多維數組裡面的元素也可以是多種類型

而且還可以這樣

<?php
$a=array(array(&#39;a&#39;,1,2),array("hello",3,1.1,2,&#39;a&#39;));
echo $a[0][0];
?>
登入後複製

不要求每個子數組的元素個數都一致,這點比C語言爽吧

和普通數組一樣,多維數組也可以這樣定義,不過我想沒人會這樣做。 。

<?php
$a[0][0]="hello00";
$a[0][1]="hello01";
$a[0][2]="hello02";
$a[0][3]="hello03";
$a[1][0]="hello10";
$a[1][1]="hello11";
$a[1][2]="hello12";
$a[1][3]="hello13"; 
for($i=0;$i<2;$i++){
for($j=0;$j<4;$j++)
echo $a[$i][$j]." "; echo "<br/>";
}
?>
登入後複製

這個二維數組是a[2][4] 2行4列,比較規矩的
注意,只要列的元素數量一致才能用循環打印出,C語言則不需要考慮這句話

還可以定義多維關聯數組



<?php
$a=array(&#39;a&#39;=>array(&#39;a&#39;=>"hello",&#39;b&#39;=>"world"),&#39;b&#39;=>array(&#39;one&#39;=>1,&#39;two&#39;=>2,&#39;three&#39;=>3)); 
echo $a[&#39;a&#39;][&#39;a&#39;]; 
?>
登入後複製

會打印hello

就看上去是有點暈,因為關聯數組裡面又是關聯的

也可以不用這樣,像下面這樣就清楚地打印出許多

<?php
$a=array(&#39;a&#39;=>array("hello","world"),&#39;b&#39;=>array(1,2,3)); 
echo $a[&#39;a&#39;][0]."<br/>".$a[&#39;b&#39;][2]; 
?>
登入後複製

絕對不能這樣玩

hello
3
登入後複製

錯誤的



前面說的都是二維數組,那麼三維或以上的怎麼定義,很簡單


<?php
$a=array(array(&#39;a&#39;=>"hello",&#39;b&#39;=>"world"),array(&#39;one&#39;=>1,&#39;two&#39;=>2,&#39;three&#39;=>3)); echo $a[&#39;a&#39;]; ?>
登入後複製

打印5

應該有人看著會暈
現在分析一下
比如$a[0][1][1]; 最右邊括號中括號的元素在數組裡表示最裡面的

$a= array(array(array(1,2,3),array(4,5,6)),array(array(7,8,9))); 

最大分了3層,最右邊中括號的元素就表示最裡面的那層
然後往左的中括號就往外一層,以此類推

其實多看看就明白了,分的幾層就是幾維數組
另外3維數組也不需要了解太透,一般掌握到二維就可以了

前面沒詳說foreach循環,其實用foreach迴圈遍歷一維數組最好了


<?php
$a=array(array(array(1,2,3))); 
echo $a[0][0][0]; 
?>
登入後複製

輸出

<?php
$a=array(array(array(1,2,3)),array(array(4,5,6))); 
echo $a[1][0][0]; 
?>
登入後複製

是不是很簡單
value ,用來保存數組元素,叫什麼名都可以

等於是把一個數組交給代理變量,讓它幫著來輸出


<?php
$a=array(array(array(1,2,3),array(4,5,6)),array(array(7,8,9))); 
echo $a[0][1][1]; 
?>
登入後複製

這樣是不會輸出數組元素的
只會輸出

<?php
$a=array(1,"hello",&#39;a&#39;); 
foreach($a as $value)
echo $value."<br/>"; 
?>
登入後複製

以上就是php學習正式啟航(3)的內容,更多相關內容請關注PHP中文網(www.php.cn)!
相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板