数组函数整理

来源:互联网 发布:交大知行大厦8层 编辑:程序博客网 时间:2024/05/19 14:54

/*~~~~~~~~~~~~~数组创建~~~~~~~~~~~~~~~*/

 

array() 生成一个数组

$a=array('cat','dog','pig');

print_r($a);  //Array ( [0] => cat [1] => dog [2] => pig )

 

array_combine() 生成一个数组,用一个数组的值作为键名。另一个数组值作为值

$a1=array('c','d','p');

$a2=array('cat','dog','pig');

print_r(array_combine($a1,$a2));  //Array ( [c] => cat [d] => dog [p] => pig )

 

range() 创建并返回一个包含指定范围的元素的数组

$number=range(0,50,10);

print_r($number);  //Array ( [0] => 0 [1] => 10 [2] => 20 [3] => 30 [4] => 40 [5] => 50 )

 

compact() 创建一个由参数所带变量组成的数组

$firstname='peter';

$lastname='griffin';

$age='38';

$result=compact('firstname','lastname','age');

print_r($result);  //Array ( [firstname] => peter [lastname] => griffin [age] => 38 )

 

array_fill() 用给定的填充(值生成)数组 3是键,5是填充的数量,‘dog’为填充内容

$a=array_fill(3,5,'dog');

print_r($a);  //Array ( [3] => dog [4] => dog [5] => dog [6] => dog [7] => dog )

 

/*~~~~~~~~~~数组合并和拆分~~~~~~~~~~~~*/

 

array_chunk() 把一个数组分割成新的数组块

$a=array('a'=>'cat','b'=>'dog','c'=>'pig');

print_r(array_chunk($a,2));//Array ( [0] => Array ( [0] => cat [1] => dog ) [1] => Array ( [0] => pig ) )

 

array_merge() 把两个或多个数组合并为一个数组,如果两个数组内的元素相同的话,则重复的元素不再进行合并!

$a1=array('a'=>'cat','b'=>'dog');

$a2=array('c'=>'pig','d'=>'cow');

$a2=array('a'=>'cat','b'=>'dog');

print_r(array_merge($a1,$a2));//Array ( [a] => cat [b] => dog )

 

array_slice() 在数组中根据条件取出一段值,并返回

  $a=array(0=>'cat',1=>'dog',2=>'pig',3=>'cow');

  $a1=array(4=>'cat',5=>'dog',6=>'pig',7=>'cow');

print_r(array_slice($a,1,2));

Array ( [0] => dog [1] => pig ) 

print_r(array_slice($a1,4,2)).'<br>';

Array ( )无效果,采用的是默认键,赋予的键不管用

 

/*~~~~~~~~~~~~~~数组比较~~~~~~~~~~~~~~*/

 

array_diff() 返回两个数组的差集数组   注意:输出结果为第一个数组与 其他数组的差集数组,即在第一个数组中哪一个不同,输出哪一个!

$a1=array('a'=>'cat','b'=>'dog');

$a2=array('c'=>'pig','d'=>'cow');

$a3=array('c'=>'pig','b'=>'dog');

print_r(array_diff($a1,$a2)); //Array ( [a] => cat [b] => dog ) 

print_r(array_diff($a1,$a3)); //Array ( [a] => cat )

 

array_intersect() 返回两个或多个数组的交集数组

$a1=array('a'=>'cat','b'=>'dog');

$a2=array('c'=>'pig','b'=>'dog');

print_r(array_intersect($a1,$a2)); //Array ( [b] => dog )

 

/*~~~~~~~~~~~数组查找替换~~~~~~~~~~~~*/

 

array_search() 在数组中查找一个值,返回一个键,没有返回,返回假

$a1=array('a'=>'cat','b'=>'dog');

print_r(array_search('dog',$a1)); // b

 

array_splice() 把数组中一部分删除,用其他值来代替

$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");

$a2=array(0=>"Tiger",1=>"Lion");

print_r(array_splice($a1,0,2,$a2)); //Array ( [0] => Dog [1] => Cat ) 

print_r($a1); //Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )

 

//array_sum() 返回数组中所有值的总和

$a=array(0=>"5",1=>"15",2=>"25");

echo array_sum($a);// 45

 

in_array() 在数组中搜索给定的值,区分大小写

$a=array('A','b','ABCG');

if (in_array("b",$a)){

echo "Match found";//Match found

}else{

echo "Match not found";

}

 

array_key_exists() 判断某个数组中是否存在指定的key

$a=array("a"=>"Dog","b"=>"Cat");

if (array_key_exists("a",$a)){

echo "Key exists!";//Key exists!

}else{

echo "Key does not exist!";

}

 

/*~~~~~~~~~~~~数组指针操作~~~~~~~~~~~~*/

 

key() 返回数组内部指针当前指向元素的键名

$people = array("Peter", "Joe", "Glenn", "Cleveland");

echo "The key from the current position is: " . key($people);// 0

 

current() 返回数组中的当前元素(单元)

$people = array("Peter", "Joe", "Glenn", "Cleveland");

echo "The key from the current position is: " . current($people);//Peter

 

next() 把指向当前元素的指针移动到下一个元素的位置,并返回当前元素的值

$people = array("Peter", "Joe", "Glenn", "Cleveland");

echo "The key from the current position is: " . next($people);// Joe

 

prev() 把指向当前元素的指针移动到上一个元素的位置,并返回当前元素的值

$people = array("Peter", "Joe", "Glenn", "Cleveland");

echo "The key from the current position is: " . next($people);// Joe

echo "The key from the current position is: " . prev($people);// Peter

 

end() 将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)

$people = array("Peter", "Joe", "Glenn", "Cleveland");

echo "The key from the current position is: " . end($people);//Cleveland

 

reset() 把数组的内部指针指向第一个元素,并返回这个元素的值

$people = array("Peter", "Joe", "Glenn", "Cleveland");

echo "The key from the current position is: " . end($people);//Cleveland

echo "The key from the current position is: " . reset($people);//Peter

 

list() 用数组中的元素为一组变量赋值

$my_array=array("Dog","Cat","Horse");

list($a, $b, $c) = $my_array;

echo $a.'--'.$b.'--'.$c; //Dog--Cat--Horse

 

array_shift() 删除数组中的第一个元素,并返回被删除元素的值

$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");

echo array_shift($a); //Dog

print_r ($a); //Array ( [b] => Cat [c] => Horse )

 

array_unshift() 在数组开头插入一个或多个元素

$a=array("a"=>"Cat","b"=>"Dog");

echo array_unshift($a,'horse'); //3

print_r($a);  //Array ( [0] => horse [a] => Cat [b] => Dog )

 

array_push() 向数组最后压入一个或多个元素

$a=array("Dog","Cat");

echo array_push($a,"Horse","Bird"); //4

print_r($a); //Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird )

 

array_pop() 删除数组中最后一个元素

$a=array("Dog","Cat");

print_r(array_pop($a)); //Cat

print_r($a); //dog

 

/*~~~~~~~~~~~数组键值操作~~~~~~~~~~~~~*/

 

shuffle() 将数组打乱,不保留键名

$a=array("d"=>"Dog","c"=>"Cat","p"=>"pig");

shuffle($a);

print_r($a); //Array ( [0] => Dog [1] => Cat [2] => pig )

 

count() 计算数组中的单元数目或对象中的属性个数

$a=array("d"=>"Dog","c"=>"Cat","p"=>"pig");

print_r(count($a));// 3

 

array_flip() 返回一个键值反转后的数组

$a=array("d"=>"Dog","c"=>"Cat","p"=>"pig");

print_r(array_flip($a)); //Array ( [Dog] => d [Cat] => c [pig] => p )

 

array_keys() 返回数组所有的键,组成一个数组

$a=array("d"=>"Dog","c"=>"Cat","p"=>"pig");

print_r(array_keys($a)); //Array ( [0] => d [1] => c [2] => p )

 

array_values() 返回数组中所有的值,组成一个新的数组

  $a=array("d"=>"Dog","c"=>"Cat","p"=>"pig");

print_r(array_values($a)); //Array ( [0] => Dog [1] => Cat [2] => pig )

 

array_reverse() 返回一个元素顺序相反的数组

$a=array("d"=>"Dog","c"=>"Cat","p"=>"pig");

print_r(array_reverse($a)); //Array ( [p] => pig [c] => Cat [d] => Dog )

 

array_count_values() 统计数组中所有值出现的次数

$a=array("Dog","Dog","Cat","pig");

print_r(array_count_values($a)); //Array ( [Dog] => 2 [Cat] => 1 [pig] => 1 )

 

array_rand() 从数组中随机抽取一个或多个元素,注意是键名,第二个参数为随机抽取的个数,最多只能抽取4个,多了就会发生报错!

$a=array("Dog","Dog","Cat","pig");

print_r(array_rand($a,2)); //Array ( [0] => 2 [1] => 3 )

 

each() 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向下一个移动。

$people = array("Peter", "Joe", "Glenn", "Cleveland");

print_r (each($people)); //Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 ) 

print_r (each($people)); //Array ( [1] => Joe [value] => Joe [0] => 1 [key] => 1 )

 

array_unique() 删除重复值,返回剩余数组 不改变原数组的值

$a=array("Dog","Dog","Cat","pig");

print_r(array_unique($a)); //Array ( [0] => Dog [2] => Cat [3] => pig )

print_r($a); //Array ( [0] => Dog [1] => Dog [2] => Cat [3] => pig )

 

 

/*~~~~~~~~~~~~~数组排序~~~~~~~~~~~~~~*/

 

sort() 按升序对给定数组的值排序,不保留键名

$a=array("one"=>"Dog","two"=>"Dog","three"=>"Cat","four"=>"pig");

//print_r(sort($a)); //结果为:1 ,以下结果类似

sort($a);

print_r($a); //Array ( [0] => Cat [1] => Dog [2] => Dog [3] => pig )

 

rsort() 对数组逆向排序,不保留键名

$a=array("one"=>"Dog","two"=>"Dog","three"=>"Cat","four"=>"pig");

print_r(rsort($a)); //输出结果为:1

rsort($a);

print_r($a); //Array ( [0] => pig [1] => Dog [2] => Dog [3] => Cat )

 

asort() 对数组排序,保持索引关系

$a=array(1=>"Dog",2=>"Dog",3=>"Cat",4=>"pig");

asort($a);

print_r($a);//Array ( [3] => Cat [2] => Dog [1] => Dog [4] => pig )

 

arsort() 对数组逆向排序,保持索引关系

$a=array(1=>"Dog",2=>"Dog",3=>"Cat",4=>"pig");

arsort($a);

print_r($a);//Array ( [4] => pig [2] => Dog [1] => Dog [3] => Cat )

 

ksort() 按键名对数组排序

$a=array(1=>"Dog",2=>"Dog",3=>"Cat",4=>"pig");

ksort($a);

print_r($a); //Array ( [1] => Dog [2] => Dog [3] => Cat [4] => pig )

 

krsort() 将数组按照键逆向排序

$a=array(1=>"Dog",2=>"Dog",3=>"Cat",4=>"pig");

krsort($a);

print_r($a); //Array ( [4] => pig [3] => Cat [2] => Dog [1] => Dog )

 

natsort() 按自然顺序法对数组中的元素排序

$a=array(1=>"Dog",2=>"dog",3=>"Cat",4=>"pig");

natsort($a);

print_r($a); //Array ( [3] => Cat [2] => Dog [1] => dog [4] => pig )

 

natcasesort() 自然排序,不区分大小写 注意:字母相同,小写排在大写前面

$a=array(1=>"Dog",2=>"dog",3=>"Cat",4=>"pig");

natcasesort($a);

print_r($a); //Array ( [3] => Cat [2] => dog [1] => Dog [4] => pig )

0 0
原创粉丝点击