分享

php入门(20)

 php入门 2015-12-03

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。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多