array_change_key_case(array input,[case]) ----返回字符串键值名全为大写或者小写的数组
将input数组中的键名改为全部大写或者小写,根据后面的case参数选择两个常量,CASE_UPPER,CASE_LOWER
<?php
$input=array("first"=>1,"sec"=>2);
$result=array_change_key_case($input,CASE_UPPER);
print_r($result);
?>
array_chunk(array input,int size,[bool preserve_keys])----将一个数组分割成多个数组,其中每个数组的单元数有size决定。最后一个数组的单元数可能会少几个,得到的数组是一个多维数组中的单元,其索引从零开始。将可选参数preserver_keys设为true可以使php保留数组中原来的键名,如果将preserver_keys设为false,数据将从零开始新的数字索引。默认值是false.
<?php
$input=array("a","b","c","d","e");
print_r(array_chunk($input,2));
print_r(array_chunk($input,2,true));
?>
array_combine(array $ingput1,array $input2)---创建一个数组用一个数组的值作为其键值,另一个数组的值作为其值.
<?php
$a=array('green','red','yellow');
$b=array('a','b','c');
$c=array_combine($a,$b);
print_r($c);
?>
array_count_values(array input)----返回数组中键值出现的次数
<?php
$a=array('1','2','fds','1','432','2');
print_r($a);
?>
array_diff_assoc(array array1,array array2,array array3)-----返回一个数组返回了在array1中但不在其他参数数组中的值。注意和array_diff()不同的是键名也用于比较。
<?php
$array1=array("a"=>"green","b"=>"blow","c"=>"blue","red");
$array2=array("a"=>"green","yeelow","red");
$result=array_diff_assoc($array1,$array2);
print_r($result);
?>
array_diff_uassoc()-----用户调用回调函数来检查数组的差集
array_diff_uassoc() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff()不同的是键名也用于比较.
<?php
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>
array_fill -- 用给定的值填充数组
array_fill() 用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始。注意 num 必须是一个大于零的数值,否则 PHP 会发出一条警告。
<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>
array_filter -- 用回调函数过滤数组中的单元
array array_filter ( array input [, callback callback] )
array_filter() 依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
<?php
function odd($var)
{
return($var % 2 == 1);
}
function even($var)
{
return($var % 2 == 0);
}
$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"));
?>
array_flip -- 交换数组中的键和值
array array_flip ( array trans )
array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名。
注意 trans 中的值需要能够作为合法的键名,例如需要是 integer 或者 string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转。
如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了
array_flip() 如果失败返回 FALSE
<?php
$trans = array_flip($trans);
$original = strtr($str, $trans);
?>
--------------
<?php
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
?>
array_intersect_assoc -- 带索引检查计算数组的交集
array array_intersect_assoc ( array array1, array array2 [, array ...] )
array_intersect_assoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_intersect() 不同的是键名也用于比较.
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
?>
上面例子中可以看到只有键值对 "a" => "green" 在两个数组中都存在从而被返回。值 "red" 没有被返回是因为在 $array1 中它的键名是 0 而在 $array2 中 "red" 的键名是 1。 键值对 key => value 中的两个值仅在 (string) $elem1 === (string) $elem2 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。
array_intersect -- 计算数组的交集
array array_intersect ( array array1, array array2 [, array ...] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变
<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>
array_key_exists(mixed key,array search)
array_key_exists()在给定的key 存在于数组中时返回TRUE。key可以是任何能为数组索引的值。
array_key_exists()也可用于对象。
<?php
$search_array=array('first'=>1,'second'=>4);
if(array_key_exists('first',$search_array)){
echo "the 'first' element is in the array";
}
?>
--------------
<?php
$serach_array=array('first'=>null,'second'=>4);
isset($search_array['first']);
array_key_exists('first',$search_array);
?>
---------
array_keys--返回数组中所有的键名
说明
array array_keys(array input[,mixed search_value[,bool strict]])
array_keys()返回数组中数字或者字符串的键名
如果指定可选参数search_value 则只返回该值的键名。否则input数组中的所有键名都会被返回。
<?php
$array=array(0=>100,"color"=>"red");
print_r(array_key($array));
echo "<br>";
$array=array("blue","red","green","blue","blue");
print_r(array_keys($array,"blue"));
echo "<br>";
$array=array("color"=>array("blue","red","green"),
"size"=>array("small","medium","large"));
print_r(array_keys($array));
?>
-----------
array_map--将回调函数作用到给定的数组的单元上
array array_map()返回一个数组,该数组包含了arr1中的所有单元经过callback作用过之后的单元。
callback接受的参数数目应该和传递给array_map()函数的数组数目一致。
<?php
function cube($n)
{
return($n*$n*$n);
}
$a=array(1,2,3,4,5);
$b=array_map("cube",$a);
print_r($b);
?>
-----------------
<?php
function show_Spanish($n,$m)
{
return "the number $n is called $m in Spanish");
}
function map_Spanish($n,$m)
{
return (array($n=>$m));
}
$c=array_map("show_Spanish",$a,$b);
print_r($c);
echo "<br>";
$d=array_map("map_Spanish",$a,$b);
print_r($d);
?>
------------------------
array_merge_recursive--递归的合并一个或者多个数组
array_merge_recursive(array array1[,array])
array_merge_recursive()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。
返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,
因此如果一个值本身是一个数组,本函数将按照照应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,
后一个值将不会覆盖原来的值,而是附加到后面。
<?php
$ar1=array("color"=>array("favorite"=>"red"),5);
$ar2=array(10,"color"=>array("favorite"=>"green","blue"));
$result=array_merge_recursive($ar1,$ar2);
?>
------------------------
array_merge--合并一个或多个数组
array_merge(array array1[,array array2[,array...]])
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。
返回作为结果的数组。
如果输入的数组中的有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,
后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
<?php
$array1=array("color"=>"red",2,4);
$array2=array("a","b","color"=>"green","shape"=>"trapezoid",4);
$result=array_merge($array1,$array2);
print_r($result);
?>
------------
array_multisort--对多个数组或多维数组进行排序。
bool array_multisort(array ar1[,mixed arg[,mixed...[array...]]])
如果成功则返回TRUE,失败则返回FALSE.
array_multisort()可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。
输入数组被当成一个表的列并可以行来排序--这类似于sql 的order by 。数组中的行(值)
比较为相同的话就按照下一个输入数组中相应值的大小排序,一次类推。
排序顺序标志
sort_asc-按照上升顺序
sort_desc-按照下降排序
排序类型标志:
sort_regular-将项目按照通常方法比较
sort_NUMERIC-将项目按照数值比较
sort_string-将项目按照字符串比较
<?php
$ar1=array("10",100,100,"a");
$ar2=array(1,3,"2",1);
array_multisort($ar1,$ar2);
var_dump($ar1);
var_dump($ar2);
?>
----
array_pop--将数组最后一个单元弹出(出栈)
mixed array_pop(array &array)
array_pop()弹出并返回array数组的最后一个单元,并将数组array的长度减一。如果array为空
将返回 NUll.
<?php
$stack=array("orange","banana","apple","raspberry");
$fruit=array_pop($stack);
print_r($stack);
?>
------------
array_pad--用值将数组填充到指定长度
<?php
$input=array(12,10,9);
$result=array_pad($input,5,0);
$result=array_pad($input,-7,-1);
$result=array_pad($input,2,"noop");
?>
----------------------
array_push()--将一个或多个单元压入数组的末尾。
int array_push(array &array,mixed var[,mixed...])
array_push()将array当成一个栈,并将传入的变量压入array的末尾。array的长度将
根据入栈变量的数目增加。
<?php
$stack=array("orange","bannana");
array_push($stack,"apple","raspberry");
print_r($stack);
?>
-----
array_rand()--从数组中随机取出一个或者多个单元。
array_rand(array input[,int num_req])
array_rand()在你想从数组中取出一个或者多个随机的单元的时候相当有用。它接受
input 作为输入数组和一个可选的参数num_req,指明了你想取出多少个单元 默认为1.
如果你只取出一个,array_rand()返回一个随机单元的键名,否则就返回一个包含随机键名的数组。
这样你就可以随机从数组中取出键名和值。
<?php
srand((floar)microtime()*100000000);
$input=array("neo","morpheus","trinity","Cypher","Tank");
$rand_keys=array_rand($input,2);
print $input[$rand_keys[0]]."/n";
print $input[$rand_keys[1]"/n";
?>