1. 程式人生 > >PHP數組基本的操作方法

PHP數組基本的操作方法

我們 for循環 一個 功能 text park 數據 data- ray

1、數組操作的基本函數

數組的鍵和值:
  array_values($arr);獲得數組的值
  array_keys($arr);獲得數組的鍵名
  array_flip($arr);數組中的值與鍵名互換(如果有重復前面的會被後面的覆蓋)
  in_array("apple",$arr);在數組中檢索apple
  array_search("apple",$arr);在數組中檢索apple ,如果存在返回鍵名
  array_key_exists("apple",$arr);檢索給定的鍵名是否存在數組中
  isset($arr[apple]):檢索給定的鍵名是否存在數組中

數組和變量之間的轉換:
  extract($arr);用於把數組中的元素轉換成變量導入到當前文件中,鍵名當作變量名,值作為變量值
  註:(第二個參數很重要,可以看手冊使用)使用方法 echo $a;
  compact(var1,var2,var3);用給定的變量名創建一個數組

數組的內部指針:
  current($arr);返回數組中的當前單元
  pos($arr);返回數組中的當前單元
  key($arr);返回數組中當前單元的鍵名
  prev($arr);將數組中的內部指針倒回一位
  next($arr);將數組中的內部指針向前移動一位
  end($arr);將數組中的內部指針指向最後一個單元
  reset($arr;將數組中的內部指針指向第一個單元
  each($arr);將返回數組當前元素的一個鍵名/值的構造數組,並使數組指針向前移動一位
  list($key,$value)=each($arr);獲得數組當前元素的鍵名和值

2、數組的排序

通過元素值對數組排序:
  sort($arr);由小到大的順序排序(第二個參數為按什麽方式排序)忽略鍵名的數組排序
  rsort($arr);由大到小的順序排序(第二個參數為按什麽方式排序)忽略鍵名的數組排序
  usort($arr,"function");使用用戶自定義的比較函數對數組中的值進行排序(function中有兩個參數,0表示相等,正數表示第一個大於第二個,負數表示第一個小於第二個)忽略鍵名的數組排序:
  asort($arr);由小到大的順序排序(第二個參數為按什麽方式排序)保留鍵名的數組排序
  arsort($arr);由大到小的順序排序(第二個參數為按什麽方式排序)保留鍵名的數組排序
  uasort($arr,"function");使用用戶自定義的比較函數對數組中的值進行排序(function中有兩個參數,0表示相等,正數表示第一個大於第二個,負數表示第一個小於第二個) 保留鍵名的數組排序。

通過鍵名對數組排序
  ksort($arr);按照鍵名正序排序
  krsort($arr);按照鍵名逆序排序
  uksort($arr,"function");使用用戶自定義的比較函數對數組中的鍵名進行排序(function中有兩個參數,0表示相等,正數表示第一個大於第二個,負數表示第一個小於第2個

自然排序法排序
  natsort($arr);自然排序(忽略鍵名)
  natcasesort($arr);自然排序(忽略大小寫,忽略鍵名)

數組排序:

使用sort()函數:
sort()函數是區分字母大小寫的。所有的大家字母都在小寫字母的前面。所以‘A’小於‘Z’,而‘Z‘小於‘a’。
該 函數的第二個參數是可選的。這個可選參數可以傳遞SORT_REGULAR(默認值)、SORT_NUMERIC或SORT_STRING。指定排序類型 的功能是非常有用的,例如,當要比較可能包含有數字2和12的字符串時。從數學角度看,2要小於12,但是作為字符串,‘12’卻要小於‘2’。

使用asort()函數和ksort()函數對相關數組排序:
函數asort()根據數組的每個元素值進行排序。ksort()函數是按關鍵字排序而不是按值排序。

反向排序:

函數rsort()將一個一維數字索引數組按降序排序。函數arsort()將一個一維相關數組按每個元素值的降序排序。函數krsort()針根據數組元素的關鍵字將一維數組按照降序排序。
為了訪問一個一維數組中的數據,需要使用數組的名稱和元素的索引,除了一個元素具有兩個索引——行和列外,二維數組和一維數組是類似的。
可以使用雙重for循環來實現同樣的效果:
for ( $row=0; $row<3; $row++ )
{
for ( $column=0; $column<3; $column++ )
{
echo ‘|‘.$products[$row][$column];
|
echo ‘|<br />‘;
}
如果對一個大數組使用這種代碼,那麽將簡潔得多。
你可能更喜歡創建列名稱來代替數字。可以使用如下代碼:
$products = array ( array ( ‘Code‘=>‘TIR‘, ‘Descrīption‘=>‘Tires‘, ‘Price‘=>100 ), array ( ‘Code‘=>‘OIL‘, ‘Descrīption‘=>‘Oil‘, ‘Price‘=>10 ), array ( ‘Code‘=>‘SPK‘, ‘Descrīption‘=>‘Spark Plugs‘, ‘Price‘=>4 ) };
如果希望檢索單個值,那麽使用這個數組會容易得多。請記住,將所描述的內容保存到用它的名 稱命名的列中,與將其保存到所謂的第一列中相比,前者更容易記憶。使用描述性索引,不需要記住某個元素是存放在[x][y]位置的。使用一對有意義的行和 列的名稱作為索引可以使用你很容易找到所需的數據。
然後,我們卻不能使用一個簡單的for循環按順序遍歷每一列。可以使用for循環遍歷外部的數 字索引數組$products。$products數組的每一行都是一個具有描述性索引的數組。在while循環中使用each()和list()函數, 可以遍歷整個內部數組。因此,需要一個內嵌有while循環的for循環。
for ( $row = 0; $row < 3; $row++ }
{
while ( list ( $key, $value ) = each ( $products[$row] ) )
{
echo "|$value";
}
echo ‘|<br />‘;
}
三維數組具有高、寬、深的概念。如果能輕松地將一個二維數組想像成一個有行和列的表格,那麽就可以將三維數組想像成一堆像這樣的表格。每個元素可以通過層、行和列進行引用。
根據創建多維數組的方法,可以創建四維、五維或六維數組。在PHP中,並沒有設置數組維數的限制,但人們很難設想一個多於三維的數組。大多數的實際問題在邏輯上只需要使用三維或者更少維的數組結構就可以了。

PHP數組基本的操作方法