搜尋
首頁php教程php手册資料結構-陣列(數組)

資料結構-陣列(數組)
數組是一種以連續方式儲存資料的結構,可透過索引存取。 不要將它們與PHP數組混淆:PHP數組實際上實現為有序哈希表。

SplFixedArray和PHP數組之間的主要區別:

SplFixedArray是固定長度的標準(標準陣列),並且只允許範圍內的整數作為索引。 優點是它允許更快的陣列實現。
PHP數組實際上實作為有序哈希表(一組資料的集合)。 <?php <br /> <br> /*<br> 建構一個新的固定數組,指定長度為5<br> */<br> $array = new SplFixedArray(5);<br> <br> /*<br> 為指定的索引賦值<br> */<br> $array[1] = 2;<br> $array[4] = "foo";<br> <br> /*<br> 資料結構:<br> object(SplFixedArray)#1 (5) {<br>   [0]=><br>   NULL<br>   [1]=><br>   int(2)<br>   [2]=><br>   NULL<br>   [3]=><br>   NULL<br>   [4]=><br>   string(3) "foo"<br> }<br> */<br> var_dump($array);<br> <br> /*<br> 數組長度為5<br> */<br> var_dump($array->count());<br> <br> /*<br> 將陣列的大小增加到10<br> */<br> $array->setSize(10);<br> <br> /*<br> 長度增加的數組,原始資料不會改變<br> object(SplFixedArray)#1 (10) {<br>   [0]=><br>   NULL<br>   [1]=><br>   int(2)<br>   [2]=><br>   NULL<br>   [3]=><br>   NULL<br>   [4]=><br>   string(3) "foo"<br>   [5]=><br>   NULL<br>   [6]=><br>   NULL<br>   [7]=><br>   NULL<br>   [8]=><br>   NULL<br>   [9]=><br>   NULL<br> }<br> <br> */<br> var_dump($array);<br> <br> /*<br> 為擴充長度後的陣列賦值<br> */<br> $array[9] = "asdf";<br> <br> <br> /*<br> 將陣列縮小到2的大小<br> 將從索引開始處,保存兩個長度<br> object(SplFixedArray)#1 (2) {<br>   [0]=><br>   NULL<br>   [1]=><br>   int(2)<br> }<br> */<br> $array->setSize(2);<br> <br> <br> <br> /*<br> 以下行拋出一個RuntimeException:索引無效或超出範圍<br> */ <br> try {<br>     $array["username"]="jack";<br> } catch(RuntimeException $re) {<br>     /*<br>     RuntimeException: Index invalid or out of range<br>     索引只能是整數<br>     */<br>     echo "RuntimeException: ".$re->getMessage()."n"; <br> }<br> <br> try {<br>     $array[-1]="jack";<br> } catch(RuntimeException $re) {<br>     /*<br>     RuntimeException: Index invalid or out of range<br>     索引不合法<br>     */<br>     echo "RuntimeException: ".$re->getMessage()."n";<br> }<br> <br> try {<br>     $array[5]="jack";<br> } catch(RuntimeException $re) {<br>     /*<br>     RuntimeException: Index invalid or out of range<br>     索引超出陣列長度<br>     */<br>     echo "RuntimeException: ".$re->getMessage()."n";<br> }<br> <br> /*<br> 查看數組大小<br> getSize/count  <br> */<br> echo $array->getSize();<br> ?><?php <br /> <br> $data=[1 => 1, 0 => 2, 3 => 3];<br> <br> $sfa = SplFixedArray::fromArray($data);<br> <br> /*<br> object(SplFixedArray)#1 (4) {<br>   [0]=><br>   int(2)<br>   [1]=><br>   int(1)<br>   [2]=><br>   NULL<br>   [3]=><br>   int(3)<br> }<br> */<br> var_dump($sfa);<br> <br> $data=[1 => 1, 2 => 2, true => 3,5=>5];<br>$sfa = SplFixedArray::fromArray($data);<br> <br> /*<br> 1 true轉換為1,索引為1的資料會被改為3<br> 2 預設保存原始索引,而且索引從0開始,資料不存在,則預設為NULL<br> object(SplFixedArray)#2 (6) {<br>   [0]=><br>   NULL<br>   [1]=><br>   int(3)<br>   [2]=><br>   int(2)<br>   [3]=><br>   NULL<br>   [4]=><br>   NULL<br>   [5]=><br>   int(5)<br> }<br> */<br> var_dump($sfa);<br> <br> $data=[1 => 1, 2 => 2, true => 3,5=>5];<br> $sfa = SplFixedArray::fromArray($data,false);<br> <br> /*<br> 1 嘗試保存原始數組中使用的數字索引。預設為true;<br> 2 如果不保存原始數字索引,那麼會傳回非NULL的陣列<br> <br> object(SplFixedArray)#1 (3) {<br>   [0]=><br>   int(3)<br>   [1]=><br>   int(2)<br>   [2]=><br>   int(5)<br> }<br> <br> */<br> var_dump($sfa);<br> <br> <br> $data=[1 => 1, 'a' => 2, true => 3];<br> /*<br> 索引必須是整數<br> Fatal error: Uncaught exception 'InvalidArgumentException' with message 'array must contain only positive integer keys'<br> */<br> //$sfa = SplFixedArray::fromArray($data);<br> <br> ?>

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版