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 )
?>