首頁  >  文章  >  後端開發  >  介紹幾個array函式庫的新函數 php

介紹幾個array函式庫的新函數 php

WBOY
WBOY原創
2016-07-29 08:35:51886瀏覽

我們手邊的PHP資料不多,大家是不是都有一份php4gb.chm。我最欣賞它裡面的函數庫部分了,真正的線上幫助。但PHP發展的腳步實在太快了,你睢,我最近在www.php.net/manual/ 又找到了一些擴充的陣列函數。 
下面我把它們介紹給大家吧,我的英文程度不高,有譯的不對的地方,請指正。
格式是這樣的: 
函數名 支持版本 
函數聲明 
說明及參數、返回值 
例子 
OK,Let's go. 
//**** ******************** 
array_flip (PHP4 >= 4.0b4) 
array array_flip (array trans) 
將陣列trans的key、 value交換,就是key變value,而value變key了。 
傳回完成處理的陣列。
例: 
$a[0]="abc"; 
$a[1]="def"; 
After an array_flip() you get: 
$a["abc "]=0; $a["def"]=1; 
//*************************** 
array_count_values (PHP4 >= 4.0b4) 
array array_count_values (array input) 
統計input陣列中各數值的數量。傳回一個數組,以input的值做為key,以出現個數為value的新數組。
範例: 
$array = array (1, "hello", 1, "world", "hello"); 
array_count_values ($array);  2, "world"=>1) 
//*****************************
array_merge (PHP4 ) 
array array_merge (array array1, array array2 [, array ...]) 
合併多個數組,並在後面加上一個新的數字之間加在array1的後面。傳回結果數組。 
如果是關聯數組,以字串為key,出現同名的key,則後面的會覆蓋前面的,而下標數組不會出現覆蓋的現象,只是添加在後面。
範例: 
$array1 = array ("color" => "red", 2, 4); 
$array2 = array ("a", "b", =color"b", ", "shape" => "trapezoid", 4); 
array_merge ($array1, $array2); 
//Resulting array will "a", "b", "shape" => "trapezoid", 4). 
See also array_merge_recursive(). 
//********************** ************** 
array_merge_recursive (PHP4 >= 4.0.1) 
array array_merge_recursive (array array1,   array2 [數組,與上個函數基本類似。差別在於,在關聯數組方面,它不是簡單地把相同的key合併,還是產生一個二維數組來合併這相同key的value。 (表達不清,不好意思,看例子)。
例: 
$ar1 = array ("color" => array ("favorite" => "red"), 5); 
$ar = "red"), 5); 
$) "favorite" => "green", "blue"))); 
$result = array_merge_recursive ($ar1, $ar2); 
//ResultingŠ [colory $ar2); 
//Resultingwill [colory " => array ("red", "green"), "blue"), 5, 10). 
懂了嗎? red,green被合併成一個新的陣列了,放在favorite裡。
See also array_merge(). 
//******************************* 
array_intersect ( PHP4 >= 4.0.1) 
array array_intersect (array array1, array array2 [, array ...]) 
取多個陣列的交集,傳回包含包含新陣列元素的新陣列。 
以array1為基礎的,所以了,如果是關聯數組,那key值就是array1的了。見例子。
例: 
$array1 = array ("a" => "green", "red", "blue"); 
$ 2 = array ("b" ", "red"); 
$result = array_intersect ($array1, $array2); 
//This makes $ >See also array_diff(). 
//************************************** ***** 
array_diff (PHP4 >= 4.0.1) 
array array_diff (array array1, array array2 [ array ...]) 數組的差集了。
例: 
$array1 = array ("a" => "green", "red", "blue"); 
$ 2 = array ("b" ", "red"); 
$result = array_diff ($array1, $array2); 
//This makes $result have arra >//******************************************* 
array_keys (PHP4 ) 
array_values (PHP4) 
array array_keys (array input [, mixed search_value]) 
array array_arraym)-兩個 
array_keys可以取出陣列所有的key,如果定義了search_value,就只取對應的key值。 
array_values取出陣列input的所有value值。
範例: 
$array = array ("size" => "XL", "color" => "gold"); 
array_values =$array); "gold") 
$array = array (0 => 100, "color" => "red"); 
array_keys ($array) // returns $array = array ("blue", "red", "green", "blue", "blue"); 
array_keys ($array, "blue");
//********************************************* * 
array_multisort (PHP4 >= 4.0b4) 
bool array_multisort (array ar1 [, mixed arg [,1mixed ,或對一個多維數組進行多個維的排序。 (很有用哦,我上回在中文用戶問了這個問題)。 
輸入的陣列被處理成表格的列,依行來排序,有點類似sql語句中的order by條件。 
這個函數的參數不常見,但是很有彈性。可是一個數組或是下面這幾個標誌。
SORT_ASC - 升序 
SORT_DESC - 降序 
SORT_REGULAR - 常規比較 
SORT_NUMERIC - 數值比較 
SORT_STRING - 字串比較 
一個數組不可以同時給兩種類型的排序標誌(這個當然了)。每個數組後的標誌只對此數組有效。預設為 SORT_ASC 和 SORT_REGULAR 。 
如果正常,回傳true,否則回傳false。
範例1: 
$ar1 = array ("10", 100, 100, "a"); 
$ar2 = array  (1,90,m "2 3, ($ar1, $ar2); 
//結果是 $ar1 = 10, "a", 100, 100. $ar2= 1, 1, 2, "3". 
例2: $ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1)); 
array_multisort ($ar10], 🎜>$ar[1], SORT_NUMERIC, SORT_DESC); 
// after sorting, the first array will contain 10, 100, 100,0090 and the second one will contain 1, 3, "2", 1 (sorted as numbers, in descending order). 
不過,上面這個例子我試了一下,不行,會報參數3要求是數組的錯誤。 (???這個俺也不知了) 
如果你直接用 array_multisort($ar[0],SORT_ASC,$ar[1],SORT_DESC);可以。
//****************************************** 
array_pop (PHP4 ) 
array_push 
array_shift 
array_unshift 
mixed array_pop ...]) 
mixed array_shift ( array array) 
int array_unshift (array array, mixed var [, mixed ...]) 
陣列作為堆疊來使用的函數。具體使用比較簡單了: 
pop彈出最後一個元素,回傳元素值。 
push把參數var加入陣列最後。返回位置。與$array[]=$var 功能相同。傳回數組新的元素個數。 
shift把數組第一個元素彈出,其它順移一位,相當於左位移。但數組元素個數減小1。返回彈出的元素。 
unshift在陣列前方加入一個或多個元素,傳回新的陣列個數。
範例1.Array_pop() 範例
$stack = array("orange", "apple", "raspberry"); 
$fruit = array_($stack);pop 
///, $stack 只有2 個元素:“orange”和“apple”,而$fruit 有“raspberry”。
範例2.Array_push() 範例
$stack = array (1, 2); 
array_push ($stack, "+", 3); 
//此範例會導致$stack 有4 個元素:1、2、"+" 和3。
範例3.Array_shift() 範例
$args = array ("-v", “-f”); 
$opt = array_shift($args); 
//這會導致$$ args 留下一個元素“-f”,而$opt 為“-v”。
範例4.Array_unshift() 範例
$queue = array("p1", "p3"); 
array_unshift($queue,“p4”,“p5”,“p6”); 
//這將導致$queue 有5 個元素:「p4」、「p5」、「p6」、「p1」和「p3」。
//******************************************** 
array_rand (PHP4 >= 4.0.0) 
mixed array_rand (array input [, int num_req]) 
從陣列中隨機選出一個或多個元素。參數num_req給出要選出的元素個數,為1。 
傳回一個數組,內容是選取出元素的key。 
事先要先叫 srand() 來產生隨機數種子。
範例1. Array_rand() 範例 
srand ( (雙) microtime() * 10000000); 
$input = array("Neo", "Morpheus", "Trinity", "Cypherity", " Tank"); 
$rand_keys = array_rand ($input, 2); 
印$input[$rand_keys[0]]."n"; 
印$input[$rand_keys[0]]."n"; 
印$input[$rand_keys[1]]. "n"; 
//***************************************** *** 
array_reverse (PHP4 > ;= 4.0b4) 
array array_reverse (array input) 
回傳一個新的佇列,把輸入的元素取到順序。
範例1. Array_reverse() 範例 
$input = array ("php ", 4.0, 陣列("綠色", "紅色")); 
$結果= array_reverse($input); >//這使得$result 具有數組(數組(“綠色”,“紅色”),4.0,“php”)。
//******************************************** 
array_slice ( PHP4 ) 
array array_slice (array array, int offset [, int length]) 
取一個佇列的一部分,由甲狀腺,長度為
傳回一個新的佇列。
offset若為正,從磁碟的偏移位置開始,若為負,則從磁碟的末端倒數算起。
length為正,是新磁碟的長度,為負,也則從磁碟的末端
範例1. Array_slice() 範例
$input = array ("a", "b", "c ", "d", "e"); 
$output = array_slice($input, 2); // 回傳「c」、「d」和「e」
$output = array_slice($input, 2, -1); // 回傳"c", "d"
$output = array_slice ($input, -2, 1); // 回傳「d」
$output = array_slice ($input, 0, 3); // 回傳「a」、「b」和「c」
//************************** ****** ************ 
array_splice (PHP4 ) 
array array_splice (array input, int ) [, int length [, array replacement]off從工廠中移去從offset開始,長度為長度的個別,如果給了replacement[]參數,則用此參數來移去去個別。
對於offset、length的處理判斷,與上例相同。
有更換參數,則用此參數來位移移去部分,如果沒有移去,則在偏移位置插入。
以下操作相當於: 
array_push ($input, $x, $y) array_splice ($input, count ($input), 0, 
array ($x, array_shift($input)array_splice($input,0,1)
array_unshift($input,$x,$y)array_splice($input,0 , 0, array ($x, $y)) 
$a[$x] = $y array_splice ($input, $x, 1, $y) 
傳回一個包含在後續元素中的新倉庫。
範例1. Array_splice() 範例
$input = array ("red", "green", "blue", "yellow"); 
array_splice ($input, 2); // $input現在是array("red", "green")
array_splice ($input, 1, -1); // $input 現在是array("red", "yellow")
array_splice ($input, 1, count($input), "orange"); 
// $input 現在是array ("red", "orange")
array_splice ($input, -1, 1, array("black" , "maroon")); 
// $input 現在是數組(“紅色”,“綠色”,
//“藍色”,“黑色”,“栗色”)
//* ******** ************** 
array_unique (PHP4 >= 4.0.1) 
array array_unique (array array) 
從一個釢中移去重複的值。新的陣列。
如果是關聯陣列,關鍵以第一個適應。
範例1.Array_unique() 範例
$input = array ("a" => "green", "red ", "b" => "綠色", "藍色", "紅色");
$結果= array_unique($input); 
//這使得$result 有陣列("a" => "green", "red", "blue");。 
以上就介紹了介紹幾個array庫的新函數php,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn