数据结构-阵列(数组)
数组是以连续方式存储数据的结构,可通过索引访问。 不要将它们与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>
?>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Dreamweaver CS6
Alat pembangunan web visual

Dreamweaver Mac版
Alat pembangunan web visual