PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论,PHP数组实际上是一个有序图。图是一种把values映射到keys的类型。
此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个PHP数组作为值,也可以很容易地模拟树。解释这些结构超出了本手册的范围,但对于每种结构你至少会发现一个例子。要得到这些结构的更多信息,我们建议你参考有关此广阔主题的外部著作。下面我们就详细的介绍有关PHP数组的相关知识。
PHP数组语法定义array()
可以用array()语言结构来新建一个array。它接受一定数量用逗号分隔的key=>value参数对。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <ol class = "dp-xml" >
<li class = "alt" ><span><span> array ([</span><span class = "attribute" ><font color= "#ff0000" >key</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>] </span></span></li>
<li class = "" ><span>value </span></li>
<li class = "alt" ><span>,... </span></li>
<li class = "" ><span>) </span></li>
<li class = "alt" ><span>
<li class = "" ><span>
<li class = "alt" ><span> </span></li>
<li class = "" >
<span></span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >php</span></font></strong><span> </span>
</li>
<li class = "alt" >
<span>$</span><span class = "attribute" ><font color= "#ff0000" >arr</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > array </font></span><span>( "foo" =</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span> "bar" ,</span><span class = "attribute" ><font color= "#ff0000" >12</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>true); </span>
</li>
<li class = "" ><span> </span></li>
<li class = "alt" ><span> echo $arr [ "foo" ];
<li class = "" ><span> echo $arr [12];
<li class = "alt" >
<span></span><span class = "tag" ><strong><font color= "#006699" >?></font></strong></span><span> </span>
</li>
</ol>
|
로그인 후 복사
key可以是integer或者string。如果键名是一个integer的标准表达方法,则被解释为整数(例如"8"将被解释为8,而"08"将被解释为"08")。PHP中数组下标的变量类型不会对数组造成影响,数组的类型只有一种,它可以同时包含整型和字符串型的下标,值可以是任何值。
1 2 3 4 5 6 7 8 9 10 11 12 | <ol class = "dp-xml" >
<li class = "alt" ><span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >php</span></font></strong><span> </span></span></li>
<li class = "" >
<span>$</span><span class = "attribute" ><font color= "#ff0000" >arr</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > array </font></span><span>( "somearray" =</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span> array (</span><span class = "attribute" ><font color= "#ff0000" >6</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>5,</span><span class = "attribute" ><font color= "#ff0000" >13</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>9, "a" =</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>42)); </span>
</li>
<li class = "alt" ><span> echo $arr [ "somearray" ][6];
<li class = "" ><span> echo $arr [ "somearray" ][13];
<li class = "alt" ><span> echo $arr [ "somearray" ][ "a" ];
<li class = "" >
<span></span><span class = "tag" ><strong><font color= "#006699" >?></font></strong></span><span> </span>
</li>
</ol>
|
로그인 후 복사
如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果你指定的键名已经有了值,则该值会被覆盖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <ol class = "dp-xml" >
<li class = "alt" ><span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >php</span></font></strong><span> </span></span></li>
<li class = "" ><span>
<li class = "alt" >
<span> array (</span><span class = "attribute" ><font color= "#ff0000" >5</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>43,32,56, "b" =</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>12); </span>
</li>
<li class = "" ><span> </span></li>
<li class = "alt" ><span>
<li class = "" >
<span> array (</span><span class = "attribute" ><font color= "#ff0000" >5</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>43,</span><span class = "attribute" ><font color= "#ff0000" >6</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>32,</span><span class = "attribute" ><font color= "#ff0000" >7</font></span><span>=</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>56, "b" =</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span>12); </span>
</li>
<li class = "alt" >
<span></span><span class = "tag" ><strong><font color= "#006699" >?></font></strong></span><span> </span>
</li>
</ol>
|
로그인 후 복사