有時候我們需要擴充套件乙個陣列,或者刪掉陣列的一部分,php為擴充套件和縮小陣列提供了一些函式。對於那些希望模仿各種佇列實現(fifo、lifo)的程式設計師來說,這些函式可以提供便利。顧名思義,從這些函式的函式名(push、pop、shift和unshift)就清楚地反映出其作用。
ps:傳統的佇列是一種資料結構,刪除元素與加入元素的順序相同,就稱為先進先出,或fifo。相反,棧是另外一種資料結構,其中刪除元素的順序與加入時的順序相反,這成為後進先出,或lifo。
在陣列頭新增元素
array_unshift()函式在陣列頭新增元素。所有己有的數值鍵都會相應地修改,以反映其在陣列中的新位置,但是關聯鍵不受影響。其形式如下:
int array_unshift(array array,mixed variable[,mixed variable])
下面這個例子在$fruits陣列前面新增了兩種水果:
$fruits = array("apple","banana");
array_unshift($fruits,"orange","pear")
// $fruits = array("orange","pear","apple","banana");
在陣列尾新增元素
array_push()函式的返回值是int型,是壓入資料後陣列中元素的個數,可www.cppcns.com以為此函式傳遞多個變數作為引數,同時向陣列壓入多個變數。其形式為:
(array 程式設計客棧array,mixed variable [,mixed variable...])
下面這個例子在$fruits陣列中又新增了兩個水果:
$fruits = array("apple","banana");
array_push($fruits,"orange","pear")
//$fruits = array("apple","banana","orange","pear")
從陣列頭刪除值
array_shift()函式刪除並返回陣列中找到的元素。其結果是,如果使用的是數值健,則所有相應的值都會下移,而使用關聯鍵的陣列不受影響。其形式為:
mixed array_shift(array array)
下面的例子刪除了$fruits陣列中的第乙個元素apple:
$fruits = array("apple","banana","orange","pear");
$fruit = array_shift($fruits);
// $fruits = array("banana","orange","pear")
// $fruit = "apple";
從陣列尾刪除元素
array_pop()函式刪除並返回陣列的最後乙個元素。其形式為:
mixed array_pop(aray target_array);
下面的例子從$states陣列刪除了最後的乙個州:
$fruits = array("apple","banana","orange","pear");
$fruit = array_pop($fruits);
//$fruits = array("apple","banana","orange");
//$fruit = "pear";
查詢、篩選與搜尋陣列元素是陣列操作的一些常見功能。下面來介紹一下幾個相關的函式。
in_array()函式
in_array()函式在乙個陣列彙總搜尋乙個特定值,如果找到這個值返回true,否則返回false。其形式如下:
boolean in_array(mixed needle,array haystack[,boolean strict]);
來看下面的例子,查詢變數apple是否已經在陣列中,如果在,則輸出一段資訊:
$fruit = "apple";
$fruits = array("apple","banana","orange","pear");
if( in_array($fruit,$fruits) )
echo "$fruit 已經在陣列中";
第三個引數可選,它強制in_array()在搜尋時考慮型別。
array_key_exists()函式
如果在乙個陣列中找到乙個指定的鍵,函式array_key_exists()返回true,否則返回false。其形式如下:
boolean array_key_exists(mixed key,array array);
下面的例子將在陣列鍵中搜尋apple,如果找到,將輸出這個水果的顏色:
$fruit["apple"] = "red";
$fruit["banana"] = "yellow";
$fruit["pear"] = "green";
if(array_key_exists("apple", $fruit))
執行這段**得到的結果:
apple's color is red
array_search()函式
array_search()函式在乙個陣列中搜尋乙個指定的值,如果找到則返回相應的鍵,否則返回false。其形式如下:
mixed array_search(mixwww.cppcns.comed needle,array haystack[,boolean strict])
下面的例子在$fruits中搜尋乙個特定的日期(december 7),如果找到,則返回相應州的有關資訊:
$fruits["apple"] = "red";
$fruits["banana"] = "yellow";
$fruits["watermelon"]="green";
$founded = array_search("green", $fruits);
if($founded)
printf("%s was founded on %s.",$founded, $fruits[$founded])
程式執行結果如下:
watermelon was founded on green.
array_keys()函式
array_keys()函式返回乙個陣列,其中包含所搜尋陣列中找到的所有鍵。其形式如下:
array array_keys(array array[,mixed search_value])
如果包含可選引數search_value,則只會返回與該值匹配的鍵。下面的例子將輸出$fruit陣列中找到的所有陣列:
$fruits["apple"] = "red";
$fruits["banana"] = "yellow";
$fruits["watermelon"]="green";
$keys = array_keys($fruits);
print_r($keys);
程式執行結果如下:
array ( [0] => apple [1] => banana [2] =&kmihgrxbgt; watermelon )
array_values()函式
array_values()函式返回乙個陣列中的所有值,並自動為返回的陣列提供數值索引。其形式如下:
array array_values(array array)
下面的例子將獲取$fruits中找到的各元素的值:
$fruits["apple"] = "red";
$fruits["banana"] = "yellow";
$fruits["watermelon"]="green";
$values = array_values($fruits);
print_r($values);
程式執行結果如下:
array ( [0] => red [1] => yellow [2] => green )
本文標題: php中對陣列的一些常用的增、刪、插操作函式總結
本文位址: /wangluo/php/135733.html
PHP常用的一些陣列操作總結
1 array values 返回包含陣列中所有鍵值的陣列,不保留鍵名。2 array diff 函式返回兩個陣列的差集陣列。該陣列包括了所有在被比較的陣列中,但是不在任何其他引數陣列中的鍵值。3 array unique 去重,保留鍵名,重複值只保留第乙個 4 array merge 把兩個或多個...
對陣列首位址的一些理解
首先來看這樣的一些 得到的的結果是很奇怪,cout a 我一直的理解是a其實是個變數,他的值是指向陣列int a 4 的指標,現在我發現這樣的理解是錯誤的,趕緊google了一下,才發現原來a其實是很多層含義的 首先a不應該看成是變數,確切的他應該是乙個指標常量,其次a與 a是兩個不同的含義,看以下...
OpenCV 對陣列(矩陣)的一些操作
opencv operations on arrays 對陣列 矩陣 的一些操作 function 函式名 use 函式用處 add 矩陣加法,a b的更高階形式,支援mask scaleadd 矩陣加法,乙個帶有縮放因子dst i scale src1 i src2 i addweighted 矩...