1. 程式人生 > >PHP 陣列操作常用函式

PHP 陣列操作常用函式

array_push();

array_reverse() php 陣列順序反轉

array array_reverse ( array $array [, bool $preserve_keys = false ] )

array_reverse() 接受陣列 array 作為輸入並返回一個單元為相反順序的新陣列。

例子:

<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
print_r(array_reverse($a));
?>

執行結果如下:

Array ( [c] => Horse [b] => Cat [a] => Dog )

<?php  
/** 
 * array_push()將一個或多個單元壓入陣列的末尾(入棧) 
 */  
$stack = array("Java", "Php", "C++");  
array_push($stack, "C#", "Ruby", array('jsp', 'Asp'));  
print_r($stack);  
echo "====================================="."<br>";  



/** 
 * array_pop() 將陣列最後一個單元彈出(出棧) 
 */  
$stack = array("Java"
, "Php", "C++", "C#", "Ruby"); array_pop($stack); print_r($stack); echo "====================================="."<br>"; /** * array_shift()將陣列開頭的單元移出陣列 array_unshift()在陣列開頭插入一個或多個單元 */ $stack = array("Java", "Php", "C++", "C#", "Ruby"); array_shift($stack); print_r($stack); ?>

這裡寫圖片描述

  1. 合併陣列
    array_merge()函式將數組合併到一起,返回一個聯合的陣列。所得到的陣列以第一個輸入陣列引數開始,按後面陣列引數出現的順序依次迫加。其形式為:
    Php程式碼 收藏程式碼
    array array_merge (array array1 array2…,arrayN)

這個函式將一個或多個數組的單元合併起來,一個數組中的值附加在前一個數組的後面。返回作為結果的陣列。
如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果陣列包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了一個數組並且該陣列是數字索引的,則鍵名會以連續方式重新索引。
Php程式碼 收藏程式碼

<?php  

$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon");  
$subset = array_slice($fruits, 3);  
print_r($subset);  

// output  
// Array ( [0] => Pear [1] => Grape [2] => Lemon [3] => Watermelon )  
?>  
 ```
然後我們使用下負長度:
Php程式碼  收藏程式碼
array array_splice ( array array , int offset[,length[,array replacement]])   
 ```
offset 為正值時,則接合將從距陣列開頭的offset 位置開始,offset 為負值時,接合將從距陣列末尾的offset 位置開始。如果忽略可選的length 引數,則從offset 位置開始到陣列結束之間的所有元素都將被刪除。如果給出了length 且為正值,則接合將在距陣列開頭的offset + leng th 位置結束。相反,如果給出了length且為負值,則結合將在距陣列開頭的count(input_array)-length的位置結束。例項如下:
Php程式碼  收藏程式碼
<?php  

$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon");  
$subset = array_splice($fruits, 2, -1, array("Green Apple", "Red Apple"));  

print_r($fruits);  
print_r($subset);  

// output  
// Array ( [0] => Apple [1] => Banana [2] => Green Apple [3] => Red Apple [4] => Watermelon )   
// Array ( [0] => Orange [1] => Pear [2] => Grape [3] => Lemon )  
?>  
 ```
從程式可以很清楚看到這個函式的使用方法了。

6. 陣列的交集 array_intersect()

array_intersect()函式返回一個保留了鍵的陣列,這個陣列只由第一個陣列中出現的且在其他每個輸入陣列中都出現的值組成。其形式如下:
Php程式碼  收藏程式碼

array array_intersect(array array1,array array2[,arrayN…])
“`
下面這個例子將返回在fruit1fruit2和$fruit3中也出現的所有的水果:
Php程式碼 收藏程式碼

<?php  
$fruit1 = array("Apple","Banana","Orange");  
$fruit2 = array("Pear","Apple","Grape");  
$fruit3 = array("Watermelon","Orange","Apple");  
$intersection = array_intersect($fruit1, $fruit2, $fruit3);  
print_r($intersection);  

// output  
// Array ( [0] => Apple )  
?>  

只有在兩個元素相等且具有相同的資料型別時,array_intersect()函式才會認為它們是相同的。

  1. 關聯陣列的交集 array_intersect_assoc()
    函式array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了陣列的鍵。因此,只有在第一個陣列中出現,且在所有其他輸入陣列中也出現的鍵/值對才返回到結果陣列中。
    形式如下:
    Php程式碼 收藏程式碼
array array_intersect_assoc(array array1,array array2[,arrayN…])  

下面的例子返回了出現在fruit1fruit2與$fruit3中的所有鍵/值對:
Php程式碼 收藏程式碼

<?php  
$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");  
$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");  
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");  
$intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);  
print_r($intersection);  

// output  
// Array ( [red] => Apple )  
?>  
  1. 陣列的差集 array_diff()

函式array_diff()返回出現在第一個陣列中但其他輸入陣列中沒有的值。這個功能與array_intersect()相反。
Php程式碼 收藏程式碼

array array_diff(array array1,array array2[,arrayN…])  

例項如下:
Php程式碼 收藏程式碼

<?php  
$fruit1 = array("Apple","Banana","Orange");  
$fruit2 = array("Pear","Apple","Grape");  
$fruit3 = array("Watermelon","Orange","Apple");  
$intersection = array_diff($fruit1, $fruit2, $fruit3);  
print_r($intersection);  

// output  
// Array ( [1] => Banana )  
?>  
  1. 關聯陣列的差集 array_diff_assoc()

函式array_diff_assoc()與array_diff()基本相同,只是它在比較時還考慮了陣列的鍵。因此,只在第一個陣列中出現而不再其他輸入陣列中出現的鍵/值對才會返回到結果陣列中。其形式如下:
Php程式碼 收藏程式碼

array array_diff_assoc(array array1,array array2[,arrayN…])  

下面的例子只返回了[yellow] => Banana,因為這個特殊的鍵/值對出現在fruit1fruit2和$fruit3中都不存在。
Php程式碼 收藏程式碼

<?php  
$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");  
$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");  
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");  
$intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);  
print_r($intersection);  

// output  
// Array ( [yellow] => Banana )  
?>  

使用陣列的過程中經常要遍歷陣列。通常需要遍歷陣列並獲得各個鍵或值(或者同時獲得鍵和值),所以毫不奇怪,PHP為此提供了一些函式來滿足需求。許多函式能完成兩項任務,不僅能獲取當前指標位置的鍵或值,還能將指標移向下一個適當的位置。

  1. 獲取當前陣列鍵 key()
    key()函式返回input_array中當前指標所在位置的鍵。其形式如下:

mixed key(array array)

下面的例子通過迭代處理陣列並移動指標來輸出fruitsPhpfruits = array(“apple”=>”red”, “banana”=>”yellow”);
while (key=key(fruits)) {
printf(“%s
”, key);next(fruits);
}

// apple
// banana

注意,每次呼叫key()時不會移動指標。為此需要使用next()函式,這個函式的唯一作用就是完成推進指標的任務。

  1. 獲取當前陣列值 current()

current()函式返回陣列中當前指標所在位置的陣列值。其形式如下:
Php程式碼 收藏程式碼

mixed current(array array)  
 ```
下面修改前面的例子,這一次我們要獲取陣列值:
Php程式碼  收藏程式碼

fruits=array(apple=>red,banana=>yellow);while(fruit = current(fruits)) {  
    printf(“%s  ”,
fruit);
next($fruits);
}

// red
// yellow




12. 獲取當前陣列鍵和值 each()

each()函式返回input_array的當前鍵/值對,並將指標推進一個位置。其形式如下:
Php程式碼  收藏程式碼
array each(array array)  

返回的陣列包含四個鍵,鍵0和key包含鍵名,而鍵1和value包含相應的資料。如果執行each()前指標位於陣列末尾,則返回false。
Php程式碼  收藏程式碼
$fruits = array("apple", "banana", "orange", "pear");  
print_r ( each($fruits) );  

// Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 )  

each() 經常和 list() 結合使用來遍歷陣列。本例與上例類似,不過迴圈輸出了整個陣列:
Php程式碼  收藏程式碼
$fruits = array("apple", "banana", "orange", "pear");  
reset($fruits);  

while (list($key, $val) = each($fruits))  
    {  
        echo "$key => $val<br />";  
    }  

// 0 => apple  
// 1 => banana  
// 2 => orange  
// 3 => pear  

因為將一個數組賦值給另一個數組時會重置原來的陣列指標,因此在上例中如果我們在迴圈內部將 $fruits 賦給了另一個變數的話將會導致無限迴圈。
這就完成了陣列的遍歷。

查詢、篩選與搜尋陣列元素是陣列操作的一些常見功能。下面來介紹一下幾個相關的函式。

13. in_array()函式

in_array()函式在一個數組彙總搜尋一個特定值,如果找到這個值返回true,否則返回false。其形式如下:
Php程式碼  收藏程式碼
boolean in_array(mixed needle,array haystack[,boolean strict]);  

來看下面的例子,查詢變數apple是否已經在陣列中,如果在,則輸出一段資訊:
Php程式碼  收藏程式碼
$fruit = "apple";   
$fruits = array("apple","banana","orange","pear");   
if( in_array($fruit,$fruits) )    
    echo "$fruit 已經在陣列中";  

第三個引數可選,它強制in_array()在搜尋時考慮型別。

14. array_key_exists()函式

如果在一個數組中找到一個指定的鍵,函式array_key_exists()返回true,否則返回false。其形式如下:
Php程式碼  收藏程式碼
boolean array_key_exists(mixed key,array array);  

下面的例子將在陣列鍵中搜索apple,如果找到,將輸出這個水果的顏色:
Php程式碼  收藏程式碼
$fruit["apple"] = "red";  
$fruit["banana"] = "yellow";  
$fruit["pear"] = "green";  
if(array_key_exists("apple", $fruit)){  
    printf("apple's color is %s",$fruit["apple"]);  
}  

//apple's color is red  

15. array_search()函式

array_search()函式在一個數組中搜索一個指定的值,如果找到則返回相應的鍵,否則返回false。其形式如下:
Php程式碼  收藏程式碼
mixed array_search(mixed needle,array haystack[,boolean strict])  

下面的例子在$fruits中搜索一個特定的日期(December 7),如果找到,則返回相應州的有關資訊:
Php程式碼  收藏程式碼
```php
$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.  




<div class="se-preview-section-delimiter"></div>
  1. array_keys()函式

array_keys()函式返回一個數組,其中包含所搜尋陣列中找到的所有鍵。其形式如下:
Php程式碼 收藏程式碼

array array_keys(array array[,mixed search_value])  




<div class="se-preview-section-delimiter"></div>

如果包含可選引數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] => watermelon )  
  1. array_values()函式

array_values()函式返回一個數組中的所有值,並自動為返回的陣列提供數值索引。其形式如下:
Php程式碼 收藏程式碼
array array_values(array array)

下面的例子將獲取fruitsPhpfruits[“apple”] = “red”;
fruits[banana]=yellow;fruits[“watermelon”]=”green”;
values=arrayvalues(fruits);
print_r($values);

//Array ( [0] => red [1] => yellow [2] => green )

有時候我們需要擴充套件一個數組,或者刪掉陣列的一部分,PHP為擴充套件和縮小陣列提供了一些函式。對於那些希望模仿各種佇列實現(FIFO、LIFO)的程式設計師來說,這些函式可以提供便利。顧名思義,從這些函式的函式名(push、pop、shift和unshift)就清楚地反映出其作用。

PS:傳統的佇列是一種資料結構,刪除元素與加入元素的順序相同,就稱為先進先出,或FIFO。相反,棧是另外一種資料結構,其中刪除元素的順序與加入時的順序相反,這成為後進先出,或LIFO。

  1. 在陣列頭新增元素

array_unshift()函式在陣列頭新增元素。所有己有的數值鍵都會相應地修改,以反映其在陣列中的新位置,但是關聯鍵不受影響。其形式如下:
Php程式碼 收藏程式碼
int array_unshift(array array,mixed variable[,mixed variable])

下面這個例子在fruitsPhp

相關推薦

PHP 陣列操作常用函式

array_push(); array_reverse() php 陣列順序反轉 array array_reverse ( array $array [, bool $preserve_keys = false ] ) array_reverse(

常用php陣列操作

/** * 陣列層級縮排轉換 * @param array $array 源陣列 * @param int $pid * @param int $level * @return array */ function Array2level($array, $pid = 0, $

陣列其它常用函式1.range()2.array_unique()3.array_fill()4.array_rand()5. shuffle()6.array_merge($arr1, $arr2)

//1.range() //生成指定範圍與步長的陣列 $arr = range(1,20,2); echo '<pre>'.var_export($arr,true).'<br>'; $arr1 = range('a','s',2); echo '<pre>'

js中陣列操作常見函式forEach,map,reduce,filter,slice

var a = [1,22,333,4444,55555] function Counter() { this.sum = 0; } js中運算元組的常見函式有: forEach((ite

四、PHP處理字串常用函式

字串操作 一、字串的連線 “. ”可以連線兩個及以上的字元為一個字串 二、字串的操作  1.trim()去除字串首尾空格和特殊字元,並返回處理後字串。  string trim(string str[,string charlist]);  必選引數str要操作的字

Flash讀寫操作常用函式及示例-20180921

1、 memcpy() 描述:C 庫函式 void *memcpy(void *str1, const void *str2, size_t n)  從儲存區 str2 複製 n 個字元到儲存區 str1。 引數: str1 -- 指向用於儲存複製內容的目標陣列,型別

go語音之進階篇字串操作常用函式介紹

下面這些函式來自於strings包,這裡介紹一些我平常經常用到的函式,更詳細的請參考官方的文件。 一、字串操作常用函式介紹 1、Contains func Contains(s, substr string) bool 功能:字串s中是否包含substr,返回bool值 示例:

python的numpy庫中的矩陣陣列常用函式

一、基本運算 ndarray可以進行+,-,*,/,//, % 對形狀不相似的陣列也可以進行運算操作的 例: 二、ndarray陣列的運算方法 ndarray.sum([axis,dtype,out,keepdims]) 返回給定軸axis上的

檔案操作常用函式

檔案重新命名: rename(inFilePath.c_str(), outFilePath.c_str()) 檔案移動(剪下): MoveFileA(inFilePath.c_str(), outFilePath.c_str()) 檔案複製: CopyFile(inFilePath.c_str()

Linux檔案IO操作常用函式

1.Linux檔案的概念 Linux系統中,一切皆是檔案。無論是鍵盤、滑鼠、顯示屏以及其它裝置,在Linux系統眼中,它們都只是檔案,僅此而已。這就意味著計算機程式可以像使用檔案一樣操控所有的外設。操作檔案(外設)的函式還是比較多的,但是常用的就那麼幾個:open、clos

Delphi7檔案操作常用函式

1. AssignFile、Erase AssignFile procedure AssignFile(var F; FileName: string);:給檔案變數連線一個外部檔名。這裡需要注意的是AssignFile不能用在已開啟的檔案上。 procedure TFor

php陣列操作方法

一、陣列操作的基本函式 陣列的鍵名和值 array_values($arr);獲得陣列的值 array_keys($arr);獲得陣列的鍵名 array_flip($arr);陣列中的值與鍵名互換(如果有重複前面的會被後面的覆蓋) in_array("apple

ruby中陣列常用函式

在程式中定義一個數組在程式中定義一個數組,因為我們在下面說明。 fruits = ["apple", "orange", "lemon"] scores = [55, 49, 100, 150, 0] 如果你是指使用陣列的陣列#[]的方法,我們將指定數目的元素的陣列作為

js 陣列操作常用方法。 push():在陣列後面加入元素,並返回陣列的長度 unshif()t:在陣列前面加入元素,並返回陣列的長度 pop()刪除最後一個元素

var arr =[1,2,3,4,5] ; arr.push(6,7,8); console.log(arr);// push:在陣列後面加入元素   結果是:[1,2,3,4,5,6,7,8] arr aa = [7,8,9,0]; aa.unshift(4,5,6)

php陣列操作大全

一、陣列操作的基本函式陣列的鍵名和值array_values($arr);獲得陣列的值array_keys($arr);獲得陣列的鍵名array_flip($arr);陣列中的值與鍵名互換(如果有重複前面的會被後面的覆蓋)in_array("apple",$arr);在陣列中檢索applearray_sear

PHP中對陣列進行操作常用函式總結

在PHP中,對陣列的操作是非常常見的,所以,掌握一些常用且重要的陣列操作函式尤其重要。現將一些本人認為較為重要的函式總結如下: 1.建立陣列使用的是array(),如: <?php $a = array("a","b");   //當然還有其他一些基礎的建立陣列的方法

PHP陣列常用函式分類整理

一、陣列操作的基本函式陣列的鍵名和值array_values($arr);  獲得陣列的值array_keys($arr);  獲得陣列的鍵名array_flip($arr);  陣列中的值與鍵名互換(如果有重複前面的會被後面的覆蓋)in_array("apple",$arr);

PHP操作MySQL資料庫常用函式

PHP操作MySQL資料庫常用函式 php操作mysql資料庫,俗稱天龍八步: 第一步:連線資料庫 第二步:判斷連線錯誤 第三步:選擇資料庫 第四步:設定字符集 第五步:準備SQL語句 第六步:執行併發送SQL語句 第七步:處理結果集 第八步:關閉連線

PHP處理陣列常用函式和使用案例(PHP Array)

PHP Array簡介,陣列函式允許您訪問和運算元組。支援單維和多維陣列。安裝 陣列函式屬於 PHP 核心部分。無需安裝即可使用這些函式。 array_search — 在陣列中搜索給定的值,如果成功則返回相應的鍵名 <?php   $array 

php陣列常用的鍵值處理函式

陣列函式__鍵值操作: 1.array_values($arr): 返回元素值組成的新陣列(索引) 2.array_column($arr,$col, $index): 返回多維陣列中的一列,可指定鍵或索引 3.array_keys($arr,$val,$bool): 返回鍵名組成的新陣列 4.