天天看點

[完]PHP Array 建立、索引、添加、删除、判斷是否存在指定元素

PHP中的數組實際上是一個有序映射。映射是一種把values關聯到keys的類型。此類型在很多方面做了優化,是以可以把它當成真正的數組,或清單(向量),散清單(是映射的一種實作),字典,集合,棧,隊列以及更多可能性。數組元素的值也可以是另一個數組。樹形結構和多元數組也是允許的。

建立Array

// 建立一個簡單的數組
$array = array(, , , , );
print_r($array);

// 現在删除其中的所有元素,但保持數組本身不變:
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// 添加一個單元(注意新的鍵名是 5,而不是你可能以為的 0)
$array[] = ;
print_r($array);

// 重新索引:
$array = array_values($array);
$array[] = ;
print_r($array);
           

結果:

Array
(
    [] => 
    [] => 
    [] => 
    [] => 
    [] => 
)
Array
(
)
Array
(
    [] => 
)
Array
(
    [] => 
    [] => 
)
           

數組索引

文法“index=>values”,用逗号分開,定義了索引和值。索引可以是字元串或數字。如果省略了索引,會自動産生從0開始的整數索引。如果索引是整數,則下一個産生的索引将是目前最大的整數索引+1。注意如果定義了兩個完全一樣的索引,則後面一個會覆寫前一個。

$fruits = array (
    "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(, , , , , ),
    "holes"   => array("first",  => "second", "third")
);
print_r($fruits);

$array = array(, , , ,  ,  => ,   => , ,  => );
print_r($array);

# 從1開始索引
$firstquarter = array( => 'January', 'February', 'March');
print_r($firstquarter);

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!
           

結果:

Array
(
    [fruits] => Array
        (
            [a] => orange
            [b] => banana
            [c] => apple
        )

    [numbers] => Array
        (
            [] => 
            [] => 
            [] => 
            [] => 
            [] => 
            [] => 
        )

    [holes] => Array
        (
            [] => first
            [] => second
            [] => third
        )

)
Array
(
    [] => 
    [] => 
    [] => 
    [] => 
    [] => 
    [] => 
    [] => 
)
Array
(
    [] => January
    [] => February
    [] => March
)
Hello baz!
           

數組末尾添加元素array_push()

  • array_push()将array當成一個棧,并将傳入的變量壓入array的末尾。array的長度将根據入棧變量的數目增加。
  • $arr[]=與array_push()效果相同,但是其效率比array_push()高出将近一倍!
$arr = array();
array_push($arr, , , );
print_r($arr);

$arr = array();
$arr[] = ;
$arr[] = ;
$arr[] = ;
print_r($arr);
           

結果:

Array
(
    [] => 
    [] => 
    [] => 
)
Array
(
    [] => 
    [] => 
    [] => 
)
           

删除數組末尾的一個元素array_pop()

array_pop() 彈出并傳回array數組的最後一個單元,并将數組array的長度減一。如果array為空(或者不是數組)将傳回NULL。

$arr1 = array("a", "b","c","d");
$temp = array_pop($arr1);
print_r($arr1);
print_r($temp);
           

結果:

Array
(
    [] => a
    [] => b
    [] => c
)
d
           

在數組的開始添加一個或多個元素array_unshift()

array_unshift() 将傳入的單元插入到 array 數組的開頭。注意單元是作為整體被插入的,是以傳入單元将保持同樣的順序。所有的數值鍵名将修改為從零開始重新計數,所有的字元串鍵名保持不變。

$arr1 = array("c","d");
array_unshift($arr1,"a","b");
print_r($arr1);
           

結果:

Array
(
    [] => a
    [] => b
    [] => c
    [] => d
)
           

删除數組第一個元素array_shift()

array_shift()将array的第一個單元移出并作為結果傳回,将array的長度減一并将所有其它單元向前移動一位。所有的數字鍵名将改為從零開始計數,文字鍵名将不變。如果array為空(或者不是數組),則傳回NULL。

$arr1 = array("a","b","c","d");
echo (array_shift($arr1)). "\n";
print_r($arr1);
           

結果:

a
Array
(
    [] => b
    [] => c
    [] => d
)
           

數組中是否存在指定的元素in_array()

in_array()函數在數組中搜尋給定的值,in_array(value,array,type),如果給定的值value存在于數組array中則傳回true。如果第三個參數設定為true,函數隻有在元素存在于數組中且資料類型與給定值相同時才傳回true。

$people = array("Peter", "Joe", "Glenn", "Cleveland");

if (in_array("Glenn",$people)) {
    echo "Match found";
} else {
    echo "Match not found";
}
           

[參考] http://blog.csdn.net/th362cn/article/details/8575344

[參考] http://www.php100.com/cover/php/18.html

[參考] http://www.php100.com/cover/php/155.html

[參考] http://zhidao.baidu.com/link?url=m0sLyMWFeR3Q5LT_3BN1i44wXWJ6E67YrJoamnLEO3Xfe61ylBW4x7KcFsA8-bdZIdbLqE4zz8OHke65guWHpK