<?php
//1.array_values()返回数组中所有的值
$array = array( "size" => "XL" , "color" => "gold" );
// echo "<pre>";
// print_r ( array_values ( $array ));
// echo "</pre>";
//2. array_keys()返回数组中所有的键名
$array = array( 0 => 100 , "color" => "red" );
echo "<pre>";
print_r ( array_keys ( $array ));
echo "</pre>";
$array = array( "blue" , "red" , "green" , "blue" , "blue" );
echo "<pre>";
print_r ( array_keys ( $array , "blue" ));
echo "</pre>";
//3.array_flip交换键值对
$trans = array( "a" => 1 , "b" => 1 , "c" => 2 );
//$trans = array_flip ( $trans );
// print_r ( $trans );
echo "<pre>";
print_r (array_flip ( $trans ));
echo "</pre>";
//4.in_array()检查是不是在数组中
$array = array(1,2,4,5);
//in_array(1,$array);
echo "<pre>";
print_r (in_array(2,$array));
echo "</pre>";
$a = array( '1.10' , '12.4' , 1.13 );
if ( in_array ( '12.4' , $a , true )) {
echo "'12.4' found with strict check\n" ;
}
if ( in_array ( 1.13 , $a , true )) {
echo "1.13 found with strict check\n" ;
}
//5 .数组中的位置
$transport = array( 'foot' , 'bike' , 'car' , 'plane' );
$mode = current ( $transport ); echo "<pre>"; print_r ($mode);echo "</pre>";
$mode = next ( $transport ); echo "<pre>"; print_r ($mode);echo "</pre>";
$mode = next ( $transport ); echo "<pre>"; print_r ($mode);echo "</pre>";
$mode = prev ( $transport ); echo "<pre>"; print_r ($mode);echo "</pre>";
$mode = reset ( $transport ); echo "<pre>"; print_r ($mode);echo "</pre>";
$mode = end ( $transport ); echo "<pre>"; print_r ($mode);echo "</pre>";
//6.compact() 根据变量生成一个关联数组
$firstname = "Peter";
$lastname = "Griffin";
$age = "38";
$array = compact('firstname','lastname','test');
echo "<pre>"; print_r ($array);echo "</pre>";
//得到的数组 :Array ([firstname] => Peter [lastname] => Griffin)
//7.array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。 在返回的数组中,键名保持不变。
$a1=array(0=>"Dog",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
$a3=array(3=>"Horse",4=>"Dog",5=>"Fish");
//print_r(array_diff($a2,$a1));
//得到的数组 Array([5]=>Fish)
//8.array_diff_assoc() 函数返回两个数组的差集数组。键值对都要比较
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(0=>"Rat",1=>"Horse",2=>"Dog");
$a3=array(0=>"Horse",1=>"Dog",2=>"Cat");
//print_r(array_diff_assoc($a1,$a2,$a3));
//该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键和值.和 array_diff() 函数 不同,
//本函数要求键名和键值都进行比较。返回的数组中键名保持不变。
//9.array_fill() 函数用给定的值填充数组
$a = array_fill(2,4,"Dog");
//print_r($a);
//Array ( [2] => Dog [3] => Dog [4] => Dog [5] => Dog )
//10.array_filter() 函数用回调函数过滤数组中的元素,如果自定义过滤函数返回 true,则被操作的数组的当前值就会
//被包含在返回的结果数组中, 并将结果组成一个新的数组。如果原数组是一个关联数组,键名保持不变
function myfunction($test)
{
if ($test==="Horse")
{
return true;
}
return false;
}
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");
//print_r(array_filter($a,"myfunction"));
//Array ( [2] => Horse )
// 11.array_intersect() 函数返回两个或多个数组的交集数组。(保留键名)
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
//print_r(array_intersect($a1,$a2));
//Array ( [1] => Dog [2] => Horse )
// 12.array_keys() 函数返回包含数组中所有键名的一个新数组
$a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
//$a=array("Horse","Cat","Dog");
print_r(array_keys($a));
//13.array_merge() 函数把两个或多个数组合并为一个数组
//如果仅仅向 array_merge() 函数输入了一个数组,且
//键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
//Array ( [a] => Horse [b] => Cat [c] => Cow )
//例2
$a=array('3'=>"Horse",'4'=>"Dog");
//$a=array('fs'=>"Horse",'dd'=>"Dog");
print_r(array_merge($a));
//Array ( [0] => Horse [1] => Dog)
//14.array_merge_recursive() 函数与 array_merge() 函数 一样,
//将一个或多个数组的元素的合并起来,一个数组中的值附加在前一个数组的后面。并返回作为结果的数组。
//但是,与 array_merge() 不同的是,当有重复的键名时,值不会被覆盖,而是将多个相同键名的值递归组成一个数组
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
echo "<pre>";
print_r(array_merge_recursive($a1,$a2));
echo "</pre>";
//结果 :Array ([a] => Horse [b] => Array ( [0] => Dog [1] => Cat ) [c] => Cow )
//15.array_pad()函数向一个数组插入带有指定值的指定数量的元素
//array_fill和array_pad的区别:一个是给制定的值填充数组,另外一个是给一个数组后追加值
$a1 = array("cat");
$array = array_pad($a1,5,'mingquan');
print_r($array);
//16.array_pop() 函数删除数组中的最后一个元素。(出栈)
//array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
//该函数等于多次调用 $array[] = $value。
$array = array('zhangsan','lisi','liuwu');
array_pop($array);
array_push($array,'wangliu','zhouqi','zhengba');
echo "<pre>";
print_r($array);
echo "</pre>";
//17.array_product() 函数计算数组的乘积
//17.array_sum() 函数计算数组的
$arr = array('5','4','3','2','1'); //结果是120
$arr = array('ming','test','3','2','1'); //结果是0
$num = array_product($arr);
//echo $num;
//18.array_rand() 函数从数组中随机选出一个或多个元素,并返回
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
//$a=array("Dog","Cat","Horse",'mouse','pig');
print_r(array_rand($a,2));
//19. array_splice() 函数与 array_slice() 函数类似,
// array_splice(array,offset,length,array)
//选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替
//提示:如果函数没有删除任何元素 (length=0),则替代数组将从 start 参数的位置插入。(
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,0,2,$a2);//返回的结果是:array(0=>"Dog",1=>"Cat"); 这2个元素是被切掉的元素
print_r($a1);//返回的结果是:array(0=>"Tiger",1=>"Lion",2=>"Horse",3=>"Bird")
//20.array_slice() 函数在数组中根据条件取出一段值
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,-2,1)); //Array ( [0] => Horse )
//21.array_search() 函数与 in_array() 一样,在数组中查找一个键值。
//如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
//echo array_search("Dog",$a); //结果是a
//22.list() 函数用数组中的元素为一组变量赋值。
$arr=array("Dog","Cat","Horse");
$arr=array("Dog","Cat","Horse");
list($a,$b,$c) = $arr;
echo "<pre>";
echo "I have $a,$b,$c.";
echo "</pre>";
//23.shuffle()将数组打乱
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse",'d'=>"mouse",'f'=>"tiger");
shuffle($a);
echo "<pre>";
print_r($a);
echo "</pre>";
//24.array_shift() 函数删除数组中的第一个元素,并返回被删除元素的值。
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
echo array_shift($a);
print_r ($a);
//结果:Dog
//Array ( [b] => Cat [c] => Horse )
?>
//25.array_chunk()将数组进行切割
$age=array("Bill"=>"60","Steve"=>"56","Mark"=>"31","David"=>"35");