首页  >  文章  >  php教程  >  经验之谈PHP数组函数总结

经验之谈PHP数组函数总结

WBOY
WBOY原创
2016-06-13 11:04:171102浏览

这几天在网上看了很多有关PHP数组函数的相关知识,觉得孔老夫子的“温故而知新”果然不假,这里是我总结的一些经验,希望对大家有帮助。

PHP中的数组实际上是一个有序图,图是一种把values映射到keys的类型。此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个PHP数组作为值,也可以很容易地模拟树。解释这些结构超出了本手册的范围,但对于每种结构你至少会发现一个例子。要得到这些结构的更多信息,我们建议你参考有关此广阔主题的外部著作,以下特记下我的一些PHP数组函数体会:

1.将一个1维数组分割成2维数组array_chunk()

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">input_array</font></span><span>=array('a','b','c','d','e');  </span></span></li>
<li class=""><span>print_r(array_chunk($input_array,2)); </span></li>
</ol>

2.比较2个数组,array_diff_assoc()或者array_diff(),如果返回值为空,表示两个数组相同,否则就不同。

3.用一个函数来过滤数组中的数值array_filter()

<ol class="dp-xml">
<li class="alt"><span><span>functionodd($var){  </span></span></li>
<li class="">
<span>return($var%</span><span class="attribute"><font color="#ff0000">2</font></span><span>==1);  </span>
</li>
<li class="alt"><span>}  </span></li>
<li class=""><span>functioneven($var){  </span></li>
<li class="alt">
<span>return($var%</span><span class="attribute"><font color="#ff0000">2</font></span><span>==0);  </span>
</li>
<li class=""><span>}  </span></li>
<li class="alt">
<span>$</span><span class="attribute-value"><font color="#0000ff">array</font></span><span class="attribute"><font color="#ff0000">array1</font></span><span>=array("a"=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>1,"b"=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>2,"c"=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>3,"d"=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>4,"e"=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>5);  </span>
</li>
<li class="">
<span>$</span><span class="attribute-value"><font color="#0000ff">array</font></span><span class="attribute"><font color="#ff0000">array2</font></span><span>=array(6,7,8,9,10,11,12);  </span>
</li>
<li class="alt"><span>echo"Odd:n";  </span></li>
<li class=""><span>print_r(array_filter($array1,"odd"));  </span></li>
<li class="alt"><span>echo"Even:n";  </span></li>
<li class=""><span>print_r(array_filter($array2,"even"));  </span></li>
<li class="alt">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>

4.array_map()将回调函数作用到给定数组的单元上,它的参数可以是一个数组,也可以是多个数组,回调函数的参数必须要和调用它的参数相同。

<ol class="dp-xml">
<li class="alt"><span><span>//单个参数的例子,将数组中的每个值,乘以它的3次方  </span></span></li>
<li class=""><span>functioncube($n){  </span></li>
<li class="alt"><span>return$n*$n*$n;  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>$</span><span class="attribute">a</span><span>=</span><span class="attribute-value">array</span><span>(1,2,3,4,5);  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">b</span><span>=</span><span class="attribute-value">array_map</span><span>("cube",$a);  </span>
</li>
<li class=""><span>print_r($b);  </span></li>
<li class="alt">
<span></span><span class="tag">?></span><span> </span>
</li>
<li class=""><span> </span></li>
<li class="alt"><span>//多个数组参数的例子  </span></li>
<li class=""><span>functionshow_Spanish($n,$m){  </span></li>
<li class="alt"><span>return"Thenumber$niscalled$minSpanish";  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>functionmap_Spanish($n,$m){  </span></li>
<li class="alt">
<span>returnarray($</span><span class="attribute">n</span><span>=</span><span class="tag">></span><span>$m);  </span>
</li>
<li class=""><span>}  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>$</span><span class="attribute">a</span><span>=</span><span class="attribute-value">array</span><span>(1,2,3,4,5);  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">b</span><span>=</span><span class="attribute-value">array</span><span>("uno","dos","tres","cuatro","cinco");  </span>
</li>
<li class=""><span> </span></li>
<li class="alt">
<span>$</span><span class="attribute">c</span><span>=</span><span class="attribute-value">array_map</span><span>("show_Spanish",$a,$b);  </span>
</li>
<li class=""><span>print_r($c);  </span></li>
<li class="alt">
<span>$</span><span class="attribute">d</span><span>=</span><span class="attribute-value">array_map</span><span>("map_Spanish",$a,$b);  </span>
</li>
<li class=""><span>print_r($d);  </span></li>
<li class="alt">
<span></span><span class="tag">?></span><span> </span>
</li>
<li class=""><span>//输出结果  </span></li>
<li class="alt"><span>//printoutof$c  </span></li>
<li class=""><span>Array  </span></li>
<li class="alt"><span>(  </span></li>
<li class="">
<span>[0]=</span><span class="tag">></span><span>Thenumber1iscalledunoinSpanish  </span>
</li>
<li class="alt">
<span>[1]=</span><span class="tag">></span><span>Thenumber2iscalleddosinSpanish  </span>
</li>
<li class="">
<span>[2]=</span><span class="tag">></span><span>Thenumber3iscalledtresinSpanish  </span>
</li>
<li class="alt">
<span>[3]=</span><span class="tag">></span><span>Thenumber4iscalledcuatroinSpanish  </span>
</li>
<li class="">
<span>[4]=</span><span class="tag">></span><span>Thenumber5iscalledcincoinSpanish  </span>
</li>
<li class="alt"><span>)  </span></li>
</ol>

以上就是有关PHP数组函数的相关总结,大家要熟记啊。


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn