Heim >Backend-Entwicklung >PHP-Tutorial >探讨如何实现PHP删除数组元素_PHP教程

探讨如何实现PHP删除数组元素_PHP教程

WBOY
WBOYOriginal
2016-07-15 13:29:481182Durchsuche

对于学习开始我参照其他方法,用unset,但是有个缺陷.如$a是一个数组:

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><strong><font color="#006699"></font></strong></span><span> $</span><span class="attribute"><font color="#ff0000">a</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">array</font></span><span>("red", "green", "blue", "yellow");   </span></span></li>
<li class=""><span>count($a); //得到4   </span></li>
<li class="alt"><span>unset($a[1]); //删除第二个元素   </span></li>
<li class=""><span>count($a); //得到3   </span></li>
<li class="alt"><span>echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue,   </span></li>
<li class=""><span>echo $a[1]; //无值   </span></li>
<li class="alt">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span>   </span>
</li>
</ol>

也就是说在删除数组中的元素后,数组中的元素个数(用count()得到)变了,但数组下标却没有重新排列,还必须用PHP删除数组元素前的key来操作相应的值.

后来我采用另一种方法,其实根本就不叫"方法",是用PHP4现成的函数array_splice().

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><strong><font color="#006699"></font></strong></span><span> $</span><span class="attribute"><font color="#ff0000">a</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">array</font></span><span>("red", "green", "blue", "yellow");   </span></span></li>
<li class=""><span>count ($a); //得到4   </span></li>
<li class="alt"><span>array_splice($a,1,1); //删除第二个元素   </span></li>
<li class=""><span>count ($a); //得到3   </span></li>
<li class="alt"><span>echo $a[2]; //得到yellow   </span></li>
<li class=""><span>echo $a[1]; //得到blue   </span></li>
<li class="alt">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span>   </span>
</li>
</ol>

把这个程序和前一个相对比,就可以看到,array_splice()不仅删除了元素,还把元素重排了,这样在数组各元素中间就不会有空值(如前例中的$a[1]).

array_splice()其实是替换数组元素的函数,但如果不加替换值就简单的PHP删除数组元素.下面是array_splice()的用法:

<ol class="dp-xml"><li class="alt"><span><span>array array_splice (array input, int offset <br>[, int length [, array replacement]])  </span></span></li></ol>

参数input是要操作的数组;offset是从第几个元素开始,为正时从第一个元素开始数,为负时从最后一个元素开始数;length为要替换/删除元素的个数,省略时就从offset开始到数组结束,也是可正可负,原理和offset一样;relacement为要替换的值.

这个PHP删除数组元素的函数已经是PHP4的标准函数了,但是在我手中的PHP4手册中却提都没提,我是下载的php.net最新的手册中才找到的.不看不知道,一看吓一跳,我手中的那个PHP4gb(相信也是大部分人手中的)实在是太老了,很多函数都没有.要知道PHP可是以函数齐全而闻名的,如果我们连很多函数都不知道的话,又怎么说把国内编程水平提上去呢?真希望能有一群PHP热忠者能再次翻译最新的PHP手册.我在"艾德技术中心"


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446338.htmlTechArticle对于学习 开始我参照其他方法,用unset,但是有个缺陷.如$a是一个数组: ? $ a = array ("red","green","blue","yellow"); count($a);//得到4 unset($a[1]);//删除第...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn