Home > php教程 > php手册 > body text

经验之谈PHP数组函数总结

WBOY
Release: 2016-06-13 11:04:17
Original
1105 people have browsed it

这几天在网上看了很多有关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>
Copy after login

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>
Copy after login

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>
Copy after login

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


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!