数组函数

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(56'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 == 1);
}

function 
even($var)
{
    return(
$var == 0);
}

$array1 = array("a"=>1"b"=>2"c"=>3"d"=>4"e"=>5);
$array2 = array(6789101112);

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";
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值