PHP數組基本的操做方法

一、數組操做的基本函數

數組的鍵和值:
  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);用給定的變量名建立一個數組app

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

二、數組的排序

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

經過鍵名對數組排序
  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()函數是按關鍵字排序而不是按值排序。

反向排序:ip

函數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中,並無設置數組維數的限制,但人們很難設想一個多於三維的數組。大多數的實際問題在邏輯上只須要使用三維或者更少維的數組結構就能夠了。字符串

相關文章
相關標籤/搜索