PHP之array
来源:互联网 发布:常用组态软件 编辑:程序博客网 时间:2024/05/22 14:38
数组函数详细介绍
数组排序
<?php$arr = array( 2,1,4,5,6 );sort($arr);listarr($arr,'sort');rsort($arr);listarr($arr,'rsort');function listarr($arr,$name){ echo $name; echo PHP_EOL; foreach($arr as $key => $val){ echo $key,'--',$val; echo PHP_EOL; } echo PHP_EOL;}//key的序列会重新调整sort0--11--22--43--54--6rsort0--61--52--43--24--1
<?php$arr = array( 2,1,4,5,6 );asort($arr);listarr($arr,'asort');arsort($arr);listarr($arr,'arsort');function listarr($arr,$name){ echo $name; echo PHP_EOL; foreach($arr as $key => $val){ echo $key,'--',$val; echo PHP_EOL; } echo PHP_EOL;}//保留原来的键值对应关系asort1--10--22--43--54--6arsort4--63--52--40--21--1
<?php$arr = array( 2=>'2',4=>'4',3=>'3',6=>'6',5=>'5' );ksort($arr);listarr($arr,'ksort');krsort($arr);listarr($arr,'krsort');function listarr($arr,$name){ echo $name; echo PHP_EOL; foreach($arr as $key => $val){ echo $key,'--',$val; echo PHP_EOL; } echo PHP_EOL;}//比较键的大小,用于关联数组ksort2--23--34--45--56--6krsort6--65--54--43--32--2
数组元素插入取出
<?php$fruit = array("orange", "banana");array_unshift($fruit, "apple", "raspberry");//array("apple", "raspberry","orange", "banana")array_shift($fruit);//array("raspberry","orange", "banana")array_push($fruit,"apple");//array("raspberry","orange", "banana","apple")array_pop($fruit);//array("raspberry","orange", "banana")
array_pad(array(),$length,value)
用值将数组填补到指定长度
<?php$input = array(12, 10, 9);$result = array_pad($input, 5, 0);// result is array(12, 10, 9, 0, 0)$result = array_pad($input, -7, -1);// result is array(-1, -1, -1, -1, 12, 10, 9)$result = array_pad($input, 2, "noop");// not padded
array_sum
<?php$arr = array(1,2,3,4,5);echo array_sum($arr);
array_diff()
计算数组的差集
//返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。<?php$array1 = array("a" => "green", "red", "blue", "red");$array2 = array("b" => "green", "yellow", "red");$result = array_diff($array1, $array2);print_r($result);##Array( [1] => blue)
array_diff_key()
使用键名比较计算数组的差集
<?php$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);var_dump(array_diff_key($array1, $array2));##array(2) { ["red"]=> int(2) ["purple"]=> int(4)}
array_diff_assoc()
带索引检查计算数组的差集,即键名键值都一致就排除
<?php$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");$array2 = array("a" => "green", "yellow", "red");$result = array_diff_assoc($array1, $array2);print_r($result);##Array( [b] => brown [c] => blue [0] => red)
array_intersect()
计算数组的交集
<?php$array1 = array("a" => "green", "red", "blue");$array2 = array("b" => "green", "yellow", "red");$result = array_intersect($array1, $array2);print_r($result);##Array( [a] => green [0] => red)
array_intersect_key()
使用键名比较计算数组的交集
<?php$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);var_dump(array_intersect_key($array1, $array2));##array(2) { ["blue"]=> int(1) ["green"]=> int(3)}
array_unique
返回没有重复值的新数组,键名保持不变,同值保留第一个
<?php$arr = array(1,2,2,2,5);echo count( array_unique($arr) );listarr(array_unique($arr),'unique');function listarr($arr,$name){ echo $name; echo PHP_EOL; foreach($arr as $key => $val){ echo $key,'--',$val; echo PHP_EOL; } echo PHP_EOL;}//去除重复元素,键不会重新排序3unique0--11--24--5
array_flip($arr)
将数组键值调转,同名保留最后一个
<?php$input = array("a" => "green", "red", "b" => "green", "blue", "red");print_r(array_flip(array_flip($input)));##可以达到跟array_unique()同样的效果Array( [b] => green [2] => red [1] => blue)
array_rand
<?php//返回一个随机值$arr = array(1,2,2,2,5);echo $arr[array_rand($arr)];
extract
<?php$arr = array( 'name'=>'ligbee' );extract($arr);echo $name;echo PHP_EOL;$new = compact(name);echo($new['name']);//extract将 数组 转换为 变量-值ligbee//compac将 变量-值 转换为 数组ligbee
array_walk
<?php$arr = array(1,2,3);function add($val){ echo ++$val;}array_walk($arr,'add');//将数组中的元素传递给定义的函数234
array_map
<?php$arr = array(1,2,3);function add($val){ return ++$val;}$new = array_map('add',$arr);print_r($new);//Array( [0] => 2 [1] => 3 [2] => 4)
array_filter($arr,callback)
数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则数组的当前值会被包含在返回的结果数组中,FALSE则被移除。数组的键名保留不变。
<?phpfunction odd($var){ return($var & 1);}function even($var){ return(!($var & 1));}$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);$array2 = array(6, 7, 8, 9, 10, 11, 12);echo "Odd :\n";print_r(array_filter($array1, "odd"));echo "Even:\n";print_r(array_filter($array2, "even"));?>##Odd :Array( [a] => 1 [c] => 3 [e] => 5)Even:Array( [0] => 6 [2] => 8 [4] => 10 [6] => 12)//当callback为空时,数组值为空,null,0时返回FALSE<?php$entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' );print_r(array_filter($entry));?>##Array( [0] => foo [2] => -1)
array_reduce($arr,callback[,initial])
将回调函数迭代地作用到数组中的每一个单元中,从而将数组简化为单一的值。如果指定了可选参数 initial,该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。
<?phpfunction rsum($v, $w){ $v += $w; return $v;}function rmul($v, $w){ $v *= $w; return $v;}$a = array(1, 2, 3, 4, 5);$x = array();$b = array_reduce($a, "rsum"); //15$c = array_reduce($a, "rmul", 10); //1200$d = array_reduce($x, "rsum", "No data to reduce"); //No data to reduce?>
array_combine(array(),array())
创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
<?php$a = array('green', 'red', 'yellow');$b = array('avocado', 'apple', 'banana');$c = array_combine($a, $b);print_r($c);?>##Array( [green] => avocado [red] => apple [yellow] => banana)
array_chunk
将一维数组分组成二维
<?php$arr = array('l','i','g','b','e','e');print_r(array_chunk($arr,3));##Array( [0] => Array ( [0] => l [1] => i [2] => g ) [1] => Array ( [0] => b [1] => e [2] => e ))
array_column($arr,key)
返回数组中指定的一列
<?php$records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ));$first_names = array_column($records, 'first_name');print_r($first_names);?>##Array( [0] => John [1] => Sally [2] => Jane [3] => Peter)
array_serach($str, array())
在数组中搜索给定的值,如果成功则返回相应的键名
<?php$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');$key = array_search('green', $array); // $key = 2;$key = array_search('red', $array); // $key = 1;?>
current(array()) 指针
返回数组中的当前单元
<?php$transport = array('foot', 'bike', 'car', 'plane');$mode = current($transport); // $mode = 'foot';$mode = next($transport); // $mode = 'bike';$mode = current($transport); // $mode = 'bike';$mode = prev($transport); // $mode = 'foot';$mode = end($transport); // $mode = 'plane';$mode = current($transport); // $mode = 'plane';$arr = array();var_dump(current($arr)); // bool(false)$arr = array(array());var_dump(current($arr)); // array(0) { }?>
0 0
- PHP之array-in_array
- PHP之array
- php之array的使用
- php之array的排序
- php学习笔记之 array+array 和 array_merge
- 三天上手PHP之9:数组(array)
- php array
- PHP array
- 【php】Array
- php array
- php array
- array.php
- php基础之数组函数——Array
- Test php array
- php array一些函数
- php 基础笔记 - array
- php array的实现
- PHP 数组 Array
- 黑马程序员_Java基础_Day15我的学习笔记
- 欢迎使用CSDN-markdown编辑器
- Android之文件的读写权限
- 慕课网实战—《用组件方式开发 Web App全站 》笔记一
- MySQL配置文件my.cnf参数优化和中文详解
- PHP之array
- HDU-1072-nightmare
- 一些json数据格式转换的例子
- NOIP2010提高组 关押罪犯 解题报告
- Windows下使用VisualSVN Server搭建SVN服务器
- 基于配置的springmvc流程分析
- U盘装启动装Ubuntu
- FPGA基础知识12(FIFO 同步、异步以及Verilog代码实现)
- 在Centos7.0上安装环境