PHP array操作10个小技巧分享

 更新时间:2011年06月23日 22:40:02   作者:  
其实任何一门计算机语言中对array(数组)的操作都是一门学问,PHP也不例外。下面笔者想向各位介绍关于PHP中array操作的10个小技巧及相关的函数。
1、向array中添加元素
php是一个弱类型语言。因此不必象c语言那样为php array声明长度。向其中添加元素的过程也是声明和初始化的过程。
复制代码 代码如下:

$capitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);

继续添加元素也很简单
复制代码 代码如下:

$capitals['Arkansas'] = 'Little Rock';

如果不是关联数组而只是数字索引的数组可以使用array_push()和array_unshift()函数增加元素
2、从array中删除元素
从数组中移除元素可以使用unset() 函数
复制代码 代码如下:

unset($capitals['California']);

也可以使用array_pop()或array_shift()函数从数组头或尾部顺序移除元素
3、array键值互换
如果希望新建数组的键是老数组的值而值是老数组的键,简而言之就是键值对调,则可以使用array_flip()函数完成操作
复制代码 代码如下:

$capitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);
$states = array_flip($capitals);
// $states = array(
// 'Montgomery' => string 'Alabama',
// 'Juneau' => string 'Alaska',
// 'Phoenix' => string 'Arizona'
// );

4、合并数组
如果希望将两个或多个数组合并成一个新的数组,array_merge()函数可以帮上这个忙^_^
复制代码 代码如下:

$stateCapitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);
$countryCapitals = array (
'Australia' => 'Canberra',
'Austria' => 'Vienna',
'Algeria' => 'Algiers'
);
$capitals = array_merge($stateCapitals, $countryCapitals);

5、修改array中的值
譬如希望将数组的中值全部改为小写后大写首字母,使用回调函数递归地对每个数组成员调用是个不错的方法,php中这个函数是php_map()
复制代码 代码如下:

function capitalize($element)
{
$element = strtolower($element);
return ucwords($element);
}
$capitals = array(
'Alabama' => 'montGoMEry',
'Alaska' => 'Juneau',
'Arizona' => 'phoeniX'
);
$capitals = array_map("capitalize", $capitals);

6、根据array的键为数组排序
复制代码 代码如下:

$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
ksort($capitals);

7、随机化array元素的顺序
shuffle() 和上面的ksort()函数恰恰相反,可以打乱数组现有的秩序,以达到随机化的目的。
复制代码 代码如下:

$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
shuffle($capitals);

8、查找键或值是否存在
查找是否存在值使用in_array()函数
复制代码 代码如下:

$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
if (in_array("Juneau", $capitals))
{
echo "Exists!";
} else {
echo "Does not exist!";
}

查找是否存在键使用array_key_exists()函数
复制代码 代码如下:

$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
if (array_key_exists("Alaska", $capitals))
{
echo "Key exists!";
} else {
echo "Key does not exist!";
}

9、数组查找
这个是老生常谈了,基本上都用的到array_search()函数
复制代码 代码如下:

$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
$state = array_search('Juneau', $capitals);
// $state = 'Alaska'

10、使用php标准函数库
一口气介绍这个多操作array的函数,如果您还觉得不过瘾,可以继续查看Standard PHP Library 中的内容^_^
复制代码 代码如下:

$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
$arrayObject = new ArrayObject($capitals);
foreach ($arrayObject as $state => $capital)
{
printf("The capital of %s is %s<br />", $state, $capital);
}
// The capital of Arizona is Phoenix
// The capital of Alaska is Juneau
// The capital of Alabama is Montgomery

相关文章

  • 懒惰是金 介绍几个php通用的函数

    懒惰是金 介绍几个php通用的函数

    PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。前不久的一份权威调查表明,现在已经有31.6%的网站使用PHP作为主要的服务器端编程语言。
    2008-04-04
  • PHP实现对数组分页处理实例详解

    PHP实现对数组分页处理实例详解

    这篇文章主要介绍了PHP实现对数组分页处理,结合实例形式分析了php封装的数组分页类定义与使用技巧,需要的朋友可以参考下
    2017-02-02
  • PHP获取指定时间段之间的 年,月,天,时,分,秒

    PHP获取指定时间段之间的 年,月,天,时,分,秒

    前端传俩个标准的 时间格式过来,格式像2009-05-12 12:12:30,然后根据需要返回这个时间段的不同单位的表示,对于时间格式的校验我这里代码没贴出来,所以用的时候自己考虑加上
    2016-06-06
  • PHP实现获取毫秒时间戳的方法【使用microtime()函数】

    PHP实现获取毫秒时间戳的方法【使用microtime()函数】

    这篇文章主要介绍了PHP实现获取毫秒时间戳的方法,结合实例形式分析了php使用microtime()函数获取、转换毫秒级时间戳的相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • PHP中file_exists()判断中文文件名无效的解决方法

    PHP中file_exists()判断中文文件名无效的解决方法

    这篇文章主要介绍了PHP中file_exists()判断中文文件名无效的解决方法,是很多PHP开发人员都会遇到的问题,主要涉及对编码的转换,需要的朋友可以参考下
    2014-11-11
  • 利用Memcached在php下实现session机制 替换PHP的原生session支持

    利用Memcached在php下实现session机制 替换PHP的原生session支持

    利用Memcached在php下实现session机制,替换PHP的原生session支持
    2010-08-08
  • ThinkPHP模板标签eq if 中区分0,null,false的方法

    ThinkPHP模板标签eq if 中区分0,null,false的方法

    下面小编就为大家带来一篇ThinkPHP模板标签eq if 中区分0,null,false的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • PHP基于openssl实现非对称加密代码实例

    PHP基于openssl实现非对称加密代码实例

    这篇文章主要介绍了PHP基于openssl实现非对称加密代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • PHP 采集获取指定网址的内容

    PHP 采集获取指定网址的内容

    用php来获取指定网页内容的实现代码,一般采集程序经常用的一些代码,这里只是一个简单的基础。更详细的资料可以参考php 采集成品,可以使用的源码,这样才能学会更多的东西。
    2010-01-01
  • PHP版自动生成文章摘要

    PHP版自动生成文章摘要

    现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。说明:这是PHP版的,用于在服务器端使用,如果你需要一个客户端版的,请阅读
    2008-07-07

最新评论