PHP數組操作函數

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 ) 
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章