array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
<?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;
?>
array_key_exists()在给定的 key 存在于数组中时返回 TRUE
<?php
$search_array = array( 'first' => null , 'second' => 4 );
// returns true
array_key_exists ( 'first' , $search_array );
?>
isset — 检测变量是否设置
<?php
$var = '' ;
// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset( $var )) {
echo "This var is set so I will print." ;
}
// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。
// the return value of isset().
$a = "test" ;
$b = "anothertest" ;
var_dump (isset( $a )); // TRUE
var_dump (isset( $a , $b )); // TRUE
unset ( $a );
var_dump (isset( $a )); // FALSE
var_dump (isset( $a , $b )); // FALSE
$foo = NULL ;
var_dump (isset( $foo )); // FALSE
?>
array_pop — 将数组最后一个单元弹出(出栈)
<?php
$stack = array( "orange" , "banana" );
array_push ( $stack , "apple" , "raspberry" );
print_r ( $stack ); // Array([0] => orange,[1] => banana,[2] => apple,[3] => raspberry)
?>
array_push — 将一个或多个单元压入数组的末尾(入栈)
array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。
<?php
$stack = array( "orange" , "banana" );
array_push ( $stack , "apple" , "raspberry" );
print_r ( $stack ); // Array([0] => orange,[1] => banana,[2] => apple,[3] => raspberry)
?>
array_unshift — 在数组开头插入一个或多个单元
array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
<?php
$queue = array( "orange" , "banana" );
array_unshift ( $queue , "apple" , "raspberry" );
print_r ( $queue ); //Array([0] => apple,[1] => raspberry,[2] => orange,[3] => banana)
?>
array_shift — 将数组开头的单元移出数组
array_shift() 将array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
<?php
$stack = array( "orange" , "banana" , "apple" , "raspberry" );
$fruit = array_shift ( $stack );
print_r ( $stack ); // Array([0] => banana,[1] => apple,[2] => raspberry)
?>
array_sum — 计算数组中所有值的和
array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。
<?php
$b = array( "a" => 1.2 , "b" => 2.3 , "c" => 3.4 );
echo "sum= " . array_sum ( $b ); // sum = 6.9
?>
array_unique — 移除数组中重复的值
array_unique() 接受 array 作为输入并返回没有重复值的新数组。注意键名保留不变。 array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。
<?php
$input = array( "a" => "green" , "red" , "b" => "green" , "blue" , "red" );
$result = array_unique ( $input );
print_r ( $result ); // Array([a] => green,[0] => red,[1] => blue)
?>
in_array — 检查数组中是否存在某个值
如果找到指定的值则返回 TRUE,否则返回 FALSE 。in_array()是区分大小写的。
<?php
$os = array( "Mac" , "NT" , "Irix" , "Linux" );
if ( in_array ( "Irix" , $os )) {
echo "Got Irix" ;
}
if ( in_array ( "mac" , $os )) {
echo "Got mac" ;
}
// 第二个条件失败,因为 in_array() 是区分大小写的,所以以上程序显示为: Got Irix
?>
array_chunk() — 函数把数组分割为新的数组块。
其中每个数组的单元数目由 size 参数决定。最后一个数组的单元数目可能会少几个。
//把数组分割为带有两个元素的数组,并保留原始数组中的键名:
<?php
$age=array("Bill"=>"60","Steve"=>"56","Mark"=>"31","David"=>"35");
print_r(array_chunk($age,2,true));
/*
Array (
[0] => Array (
[Bill] => 60
[Steve] => 56
)
[1] => Array (
[Mark] => 31
[David] => 35
)
)
*/
//把数组分割为带有两个元素的数组,不保留原始键名
<?php
$cars=array("Volvo","BMW","Toyota","Honda","Mercedes","Opel");
print_r(array_chunk($cars,2));
/*
Array (
[0] => Array (
[0] => Volvo
[1] => BMW
)
[1] => Array (
[0] => Toyota
[1] => Honda
)
[2] => Array (
[0] => Mercedes
[1] => Opel
)
)
*/
?>
?>
array_merge() — 函数把一个或多个数组合并为一个数组。
您可以向函数输入一个或者多个数组。
//[1]索引数组合并
<?php
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));
//Array ( [0] => red [1] => green [2] => blue [3] => yellow )
?>
//[2]将两个关联数组合并为一个数组:
<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));
//Array ( [a] => red [b] => yellow [c] => blue )
?>
//[3]仅使用一个带有整数键名的数组参数:
<?php
$a=array(3=>"red",4=>"green");
print_r(array_merge($a));
//Array ( [0] => red [1] => green )
?>
注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。
array_merge_recursive() 函数把一个或多个数组合并为一个数组。
该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
注释:如果您仅仅向 array_merge_recursive() 函数输入一个数组,结果与 array_merge() 相同,函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。
<?php
$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge_recursive($a1,$a2));
//Array (
[a] => red
[b] => Array (
[0] => green
[1] => yellow
)
[c] => blue
)
?>
array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
<?php
function myfunction($v)
{
return($v*$v);
}
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));
// Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )
?>
list() 函数用于在一次操作中给一组变量赋值。
把数组中的值赋给一些变量。
<?php
$my_array = array("Dog","Cat","Horse");
list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.";
// I have several animals, a Dog, a Cat and a Horse.
?>
array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。
用以重置数组索引
<?php
$a=array("Name"=>"Bill","Age"=>"60","Country"=>"USA");
print_r(array_values($a));
//Array ( [0] => Bill [1] => 60 [2] => USA )
?>
array_keys() 函数返回包含数组中所有键名的一个新数组。
<?php
//【1】返回包含数组中所有键名的一个新数组:
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a));
//Array ( [0] => Volvo [1] => BMW [2] => Toyota )
//【2】如果提供了第二个参数,则只返回键值为该值的键名。
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a,"Highlander"));
//Array ( [0] => Toyota )
//【3】如果 strict 参数指定为 true,则 PHP 会使用全等比较 (===) 来严格检查键值的数据类型。
$a=array(10,20,30,"10");
print_r(array_keys($a,"10",true));
//Array ( [0] => 3 )
?>