5、编辑数组值 假设在数组中的数据包含大小写错误,在插入到数据库之前,你想纠正这些错误,你可以使用array_map()函数给每个数组元素应用一个回调,代码如下: 1 2 3 4 5 6 7 8 9 10 11 | function capitalize( $element )
{
$element = strtolower ( $element );
return ucwords( $element );
}
$capitals = array (
'Alabama' => 'montGoMEry' ,
'Alaska' => 'Juneau' ,
'Arizona' => 'phoeniX'
);
$capitals = array_map ( "capitalize" , $capitals );
|
6、按键对数组排序 FlashCard程序常常使用各种排序,如按字母顺序排序,你可以使用ksort()函数按键对关联数组进行排序,代码如下: 1 2 3 4 5 6 | $capitals = array (
'Arizona' => 'Phoenix' ,
'Alaska' => 'Juneau' ,
'Alabama' => 'Montgomery'
);
ksort( $capitals );
|
因为数组是通过参数传递给ksort()函数的,意味着你不再需要将排序结果分配给另一个变量. 7、随机数组排序 在FlashCard程序中还涉及到另一种随机排序技术,这时你要使用shuffle()函数实现数组项目的随机排序,代码如下: 1 2 3 4 5 6 | $capitals = array (
'Arizona' => 'Phoenix' ,
'Alaska' => 'Juneau' ,
'Alabama' => 'Montgomery'
);
shuffle( $capitals );
|
如果不需要打乱数组顺序,你只是想随机选择一个值,那么使用array_rand()函数即可. 8、确定键和值是否存在 你可以使用in_array()函数确定一个数组元素是否存在,代码如下: 1 2 3 4 5 6 7 8 9 10 11 | $capitals = array (
'Arizona' => 'Phoenix' ,
'Alaska' => 'Juneau' ,
'Alabama' => 'Montgomery'
);
if (in_array( "Juneau" , $capitals ))
{
echo "Exists!" ;
} else {
echo "Does not exist!" ;
}
|
很少有人知道这个函数也可以确定一个数组键是否存在,在这一点上,它和array_key_exists()函数的功能一样,代码如下: 1 2 3 4 5 6 7 8 9 10 11 | $capitals = array (
'Arizona' => 'Phoenix' ,
'Alaska' => NULL , //isset($capitals['Alaska'])将会返回false
'Alabama' => 'Montgomery'
);
if ( array_key_exists ( "Alaska" , $capitals ))
{
echo "Key exists!" ;
} else {
echo "Key does not exist!" ;
}
|
注意:in_array()有坑点,php是弱类型语言,如果你想判断字符型值'1'是否存在于含有整型值1的数组中,请添加第三个参数true加快判断速度!否则php会认为字符型和整型的键是相同的返回true。 另外,array_key_exists()在某些情况下可以使用isset($capitals['Alaska'])代替效率更高,但是如果该键对应的值为NULL,isset并不会返回false,而array_key_exists仅仅检查键是否存在不会判断值是否为NULL因而返回true。
|