PHP 數組函數總結(thinkphp學習文檔)

最近在學習PHP,工作中需要經常對字符串和數組進行操作,因此需要對數組和字符串函數進行學習,在此記錄學習過程。

數組操作分爲幾個類型:

附帶:thinkphp開發App商城,(有源碼)下載地址:http://www.easybigu.com/
更多交流,更多資源有興趣加QQ羣:872892965 875439318

  • 數組中元素指針的移動

next() :next() 函數把指向當前元素的指針移動到下一個元素的位置,並返回當前元素的值。如果內部指針已經超過數組的最後一個元素,函數返回 false。

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

echo current($people) . "<br />";
echo next($people); 
?>
輸出:

Peter
Joe

prev():prev()函數把指向當前元素的指針移動到上一個元素的位置,並返回當前元素的值。如果內部指針已經超過數組的第一個元素之前,函數返回 false。prev() 和 next() 的行爲類似,不過它將內部指針倒回一位而不是前移一位。

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

echo current($people) . "<br />";
echo next($people) . "<br />"; 
echo prev($people); 
?>
輸出:

Peter
Joe
Peter

end():end() 函數將數組內部指針指向最後一個元素,並返回該元素的值(如果成功)。

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

echo current($people) . "<br />";
echo end($people); 
?>
輸出:

Peter
Cleveland

reset():reset() 函數把數組的內部指針指向第一個元素,並返回這個元素的值。若失敗,則返回 FALSE。

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

echo current($people) . "<br />";
echo next($people) . "<br />";
echo reset($people);
?>
輸出:

Peter
Joe
Peter

current(): current() 函數返回當前被內部指針指向的數組元素的值,並不移動指針。如果內部指針指向超出了單元列表的末端,current() 返回 FALSE。

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

echo current($people) . "<br />";
?>
輸出:

Peter

  • 數組元素增刪改查

array_push():array_push() 函數向第一個參數的數組尾部添加一個或多個元素(入棧),然後返回新數組的長度。

<?php
$a=array("Dog","Cat");
array_push($a,"Horse","Bird");
print_r($a);
?>
輸出:

Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird )

註釋:即使數組中有字符串鍵名,您添加的元素也始終是數字鍵。

註釋:如果用 array_push() 來給數組增加一個單元,還不如用 $array[] =,因爲這樣沒有調用函數的額外負擔。

註釋:如果第一個參數不是數組,array_push() 將發出一條警告。這和 $var[] 的行爲不同,後者會新建一個數組。

array_shift():array_shift() 函數刪除數組中的第一個元素,並返回被刪除元素的值。

<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
echo array_shift($a);
print_r ($a);
?>
輸出:

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

array_pop():array_pop() 函數刪除數組中的最後一個元素。

<?php
$a=array("Dog","Cat","Horse");
array_pop($a);
print_r($a);
?>
輸出:

Array ( [0] => Dog [1] => Cat )

array_unshift():array_unshift() 函數在數組開頭插入一個或多個元素。被加上的元素作爲一個整體添加,這些元素在數組中的順序和在參數中的順序一樣。該函數會返回數組中元素的個數。

<?php
$a=array("a"=>"Cat","b"=>"Dog");
array_unshift($a,"Horse");
print_r($a);
?>
輸出:

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

array_key_exists():array_key_exists() 函數判斷某個數組中是否存在指定的 key,如果該 key 存在,則返回 true,否則返回 false。

<?php
$a=array("a"=>"Dog","b"=>"Cat");
if (array_key_exists("a",$a))
	{
	echo "Key exists!";
	}
else
	{
	echo "Key does not exist!";
	}
?>
輸出:

Key exists!

in_array():in_array() 函數在數組中搜索給定的值。

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

if (in_array("Glenn",$people))
  {
  echo "Match found";
  }
else
  {
  echo "Match not found";
  }
?>
輸出:

Match found

array_search():array_search() 函數與 in_array() 一樣,在數組中查找一個鍵值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false。

<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
echo array_search("Dog",$a);
?>
輸出:

a

  • 數組元素排序

ksort():ksort() 函數按照鍵名對數組排序,爲數組值保留原來的鍵。可選的第二個參數包含附加的排序標誌。若成功,則返回 TRUE,否則返回 FALSE。

<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
ksort($my_array);
print_r($my_array);
?>
輸出:

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

krsort():krsort() 函數將數組按照鍵逆向排序,爲數組值保留原來的鍵。可選的第二個參數包含附加的排序標誌。若成功,則返回 TRUE,否則返回 FALSE。

<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
krsort($my_array);
print_r($my_array);
?>
輸出:

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

asort():asort() 函數對數組進行排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序。可選的第二個參數包含了附加的排序標識。如果成功則返回 TRUE,否則返回 FALSE。

php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");

asort($my_array);
print_r($my_array);
?> 
輸出:

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

arsort():arsort() 函數對數組進行逆向排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序。可選的第二個參數包含了附加的排序標識。如果成功則返回 TRUE,否則返回 FALSE。

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

arsort($my_array);
print_r($my_array);
?>
輸出:

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

  • 數組中元素的運算

array_sum():array_sum() 函數返回數組中所有值的總和。如果所有值多是整數,則返回一個整數值。如果其中有一個或多個值是浮點數,則返回浮點數。

<?php
$a=array(0=>"5",1=>"15",2=>"25");
echo array_sum($a);
?>
輸出:

45

array_product():array_product() 函數計算並返回數組中所有值的乘積。

<?php
$a=array(5,5);
echo(array_product($a));
?>
輸出:

25

array_walk():array_walk() 函數對數組中的每個元素應用回調函數。如果成功則返回 TRUE,否則返回 FALSE。典型情況下 function 接受兩個參數。array 參數的值作爲第一個,鍵名作爲第二個。如果提供了可選參數 userdata ,將被作爲第三個參數傳遞給回調函數。

<?php
function myfunction($value,$key) 
{
echo "The key $key has the value $value<br />";
}
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
array_walk($a,"myfunction");
?>
輸出:

The key a has the value Cat
The key b has the value Dog
The key c has the value Horse


<?php
function myfunction($value,$key,$p) 
{
echo "$key $p $value<br />";
}
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
array_walk($a,"myfunction","has the value");
?>
輸出:

a has the value Cat
b has the value Dog
c has the value Horse

array_count_values():array_count_values() 函數用於統計數組中所有值出現的次數。本函數返回一個數組,其元素的鍵名是原數組的值,鍵值是該值在原數組中出現的次數。

<?php
$a=array("Cat","Dog","Horse","Dog");
print_r(array_count_values($a));
?>
輸出:

Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )

  • 數組合並,元素隨機化

array_merge():array_merge() 函數把兩個或多個數組合併爲一個數組。如果鍵名有重複,該鍵的鍵值爲最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。

<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
?>
輸出:

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

array_merge_recursive():array_merge_recursive() 函數與 array_merge() 函數 一樣,將一個或多個數組的元素的合併起來,一個數組中的值附加在前一個數組的後面。並返回作爲結果的數組。但是,與 array_merge() 不同的是,當有重複的鍵名時,值不會被覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。

<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge_recursive($a1,$a2));
?>
輸出:

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

array_combine():array_combine() 函數通過合併兩個數組來創建一個新數組,其中的一個數組是鍵名,另一個數組的值爲鍵值。如果其中一個數組爲空,或者兩個數組的元素個數不同,則該函數返回 false。

<?php
$a1=array("a","b","c","d");
$a2=array("Cat","Dog","Horse","Cow");
print_r(array_combine($a1,$a2));
?>
輸出:

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

shuffle():shuffle() 函數把數組中的元素按隨機順序重新排列。若成功,則返回 TRUE,否則返回 FALSE。

<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
shuffle($my_array);
print_r($my_array);
?>
輸出:

Array ( [0] => Cat [1] => Horse [2] => Dog )

  • 數組其他函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章