PHP内置数组函数详解(1)
一、数组的键|值操作函数
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">1.函数array_values()</span>
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">该函数是返回数组所有元素的值,只有一个必选参数,规定传入给定的数组。返回一个包含所有数组“值”的数组,但是不保留键名,被返回的数组键key,是重新建立索引,从0开始递增。适用于数组下标混乱的数组或者把关联数组转换成索引数组。</span>
<?php $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse"); print_r(array_values($a)); ?>
Array ( [0] => Cat [1] => Dog [2] => Horse )
2.函数array_keys(array input,[mixed search_value],[bool strict]) 函数的作用是返回数组的键名,函数中一个必须参数,两个可选参数。 如果指定了可选参数search_value,那么就返回search_value的键名,否则返回所有的键名数组。自php5,参数strict参数来进行全等比较,默认false不依赖类型,true话,在数组input寻找与search_value相同的类型值,如果没有不返回。
<?php $a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog"); print_r(array_keys($a)); ?> 输出: Array ( [0] => a [1] => b [2] => c )
<?php $a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog"); print_r(array_keys($a,"Dog")); ?> 输出: Array ( [0] => c)
</pre><pre name="code" class="html"><?php $a=array(10,20,30,"10"); print_r(array_keys($a,"10",false)); ?> 输出: Array ( [0] => 0 [1] => 3 )
<?php $a=array(10,20,30,"10"); print_r(array_keys($a,"10",true)); ?> 输出: Array ( [0] => 3)
3.函数in_array(mixed needle,array haystack,[bool strict]) 函数作用是检查数组是否有某个值,三个参数前两个必须,最后一个可选。needl是要在数组haystack要寻找的值。找到返回ture,否则为false。如果第三个参数设置为true,needl类型也要和数组haystack的值一样才会返回true。
<?php $people = array("Peter", "Joe", "Glenn", "Cleveland"); if (in_array("Glenn",$people)) { echo "Match found"; } else { echo "Match not found"; } ?> 输出: Match found
<?php $people = array("Peter", "Joe", "Glenn", "Cleveland", 23); if (in_array("23",$people, TRUE)) { echo "Match found<br />"; } else { echo "Match not found<br />"; }if (in_array("Glenn",$people, TRUE)) { echo "Match found<br />"; } else { echo "Match not found<br />"; }if (in_array(23,$people, TRUE)) { echo "Match found<br />"; } else { echo "Match not found<br />"; } ?> 输出: Match not found Match found Match found
4.array_search(mixed needl ,array haystack,[bool strict]) array_search和in_array()类似,唯一不同,array_search()返回是needle键名。
5.array_key_exists(mixed key,array haystack) 函数查找haystack中的键名是否有key,因为数组键名是唯一。
<?php $a=array("a"=>"Dog","b"=>"Cat"); if (array_key_exists("a",$a)) { echo "Key exists!"; } else { echo "Key does not exist!"; } ?> 输出: Key exists!
<?php $a=array("Dog",Cat"); if (array_key_exists(0,$a)) { echo "Key exists!"; } else { echo "Key does not exist!"; } ?> 输出: Key exists!
6.array_flip(array trans) 函数作用是交换数组的键和值,返回交换后的数组,如果一个值出现多次,那么最后一个键名将作为他的值,覆盖前面出现的值。如果原数组值的类型不是字符串或整数,那么报错。
<?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse");print_r(array_flip($a)); ?> 输出: Array ( [Dog] => 0 [Cat] => 1 [Horse] => 2 )
7.array_reverse(array array[,bool preverse_key]) 函数左右是将原数组中的元素顺序反转,返回反转后的数组。如果preverse_key为true,则元素的键名保持不变。
<?php $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); print_r(array_reverse($a)); ?> 输出: Array ( [c] => Horse [b] => Cat [a] => Dog )
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。