PHP数组元素操作实例

在PHP应用中,数组是用得最广泛的数据结构了。基本可以这么说,熟练掌握数组你就可以熟练掌握PHP的大部分了。下面将PHP的数组操作进行汇总介绍下,或许有你不懂或不怎么了解的数组操作。

将数组的内部指针倒回一位:

01 /**
02 * 将数组的内部指针倒回一位
03 * @param array &$arr
04 * @return mixed 返回前一个单元的值,当没有更多单元时返回 FALSE
05 *                         如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 FALSE
06 *                         要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数
07 */
08 mixed prev(array &$arr);
09  
10 <?php
11 $transport array('foot''bike''car''plane');
12 $mode = current($transport); // $mode = 'foot';
13 $mode = next($transport);    // $mode = 'bike';
14 $mode = next($transport);    // $mode = 'car';
15 $mode = prev($transport);    // $mode = 'bike';
16 $mode end($transport);     // $mode = 'plane';
17 $mode = reset($transport) ;//$mode = 'foot';
18  
19 ?>

把数组中的单元转换为变量:

1 array("key"=>"value");建立数组
2 //显示数组
3 print_r($array);
4 //使用compact()函数新建数组,并把参数做为新数组的单元;
5 $newArray = compact("red","green","yellow","blue","array");
6 //使用extract()函数把数组中的单元转换为变量
7 extract($exArray);
8 echo "$key1 $key2 $key3 $key4 $key5";

检查值、键:

1 array_key_exists($key,$array);//检查数组键
2 in_array($value,$array);//检查值于数组

获取值:

1 //使用array_values()取得数组的值
2 $carValues array_values($car);
3 //取出数组的键名
4 $twoKeys array_keys($two);
5 key($array);//输出当前单元的键名
6 //数组定义后,使用current()取得当前单元的值
7 $red = current($array);
8 list($red,$green) = $array;//把数组中的值赋与变量,$array = array("红色","绿色");
9 each($two);//返回数组中当前单元的键和值

遍历数组:

1 foreach($two as $subArray);//遍历数组
2 while(list($key,$value) = each($array)){
3     echo "$key=>$value,";//使用each遍历数组
4 }

填充数组:

01 //向左、右填充数组
02 array_pad($array,+3,"shuzhi");//2参数为正从左往右填充,数值大于单元数时才填充
03 $array1 array_fill(5,5,"test");//使用array_fill()填充这个数组的值,值为test,从第5个单元开始填充,一共填充5个单元
04 //填充数组键名
05 $keys array('string', 5, 10, 'str');
06 $array3 = array_fill_keys($keys,"数组值");
07 //使用array_filp()函数交换键名与值
08 $speed array_flip($speed);
09 //使用array_splice()函数替换第6个单元的值为7
10 $output array_splice($input,6,0,7);
11 //使用array_splice()函数删除数组单元,只保留前5个单元
12 $output array_splice($input,5);
13 $array1 = range(10,100,10); //使用range()函数的第三个参数,设置单元之间的步进值

排序:

01 shuffle($array);//将数组顺序打乱
02 //使用array_multisort()对三个数组排序
03 array_multisort($sort1,$sort2,$sort3);
04 //把这个数组进行排序,并保持索引关系
05 asort($array);
06 //把测试数组进行逆向排序,并保持索引关系
07 arsort($array);
08 //使用ksort()对数组按键名排序
09 ksort($array);
10 //使用krsort()函数按键名逆向排序
11 krsort($array);
12 //使用sort()对测试数组进行排序[以键名排列]
13 sort($array);
14 //使用natsort()排序[自然排序,以数值排列]对单元数值大小写敏感
15 natsort($array);
16 //使用natcasesort()函数排序[自然排序]但是忽略数值大小写
17 natcasesort($array);
18 //使用array_reverse()函数排序,数组单元按相反排列
19 $newArray array_reverse($array,TRUE);//TRUE设时保留原键名

交集、差集:

01 //使用array_diff()计算三个数组的差集[对数组数值比较]
02 $result array_diff($dog1,$dog2,$dog3);
03 //使用array_diff_assoc()计算三个数组的差集[对数值和键名比较]
04 $result array_diff_assoc($dog1,$dog2,$dog3);
05 //使用array_diff_key()计算三个数组的差集[比较键名]
06 $result array_diff_key($dog1,$dog2,$dog3);
07 //使用array_intersect()计算三个数组的交集[对数组数值比较]
08 $result array_intersect($dog1,$dog2,$dog3);
09 //使用array_intersect_assoc()计算三个数组的交集[对数值和键名比较]
10 $result array_intersect_assoc($dog1,$dog2,$dog3);
11 //使用array_intersect_key()计算三个数组的交集[比较键名]
12 $result array_intersect_key($dog1,$dog2,$dog3);

合并数组:

1 //使用array_merge()函数合并数组
2 $result array_merge($array1,$array2,$array3,$array4,$array5);
3 array_rand($input,10);//随机取出10个单元
4 count($array,COUNT_RECURSIVE);//显示数组单元数目,2参数只可为1或者COUNT_RECURSIVE,有时可遍历多维数组

出入栈:

1 //数组出栈,后进先出,数组最后一个单元弹出
2 array_pop($array);
3 //数组入栈,将7,8两个数值添加到数组尾部
4 array_push($array,7,8);
5 //将数组开头单元移出数组
6 array_shift($array);
7 //将7,8添加入数组开头
8 array_unshift($array,7,8);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值