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中,并无设置数组维数的限制,但人们很难设想一个多于三维的数组。大多数的实际问题在逻辑上只须要使用三维或者更少维的数组结构就能够了。字符串

相关文章
相关标签/搜索