加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 钦州站长网 (https://www.0777zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

§7.PHP数组

发布时间:2022-11-11 10:45:06 所属栏目:PHP教程 来源:
导读:  1. 概念

  数组实际上是一个有序映射的集合,映射是一种把values关联keys的类型,值与键组成的键值对称为元素

  2. 分类

  ?按Key类型分组

  索引数组 键是整数0,1,2,3,的数组

  
  1. 概念
 
  数组实际上是一个有序映射的集合,映射是一种把values关联keys的类型,值与键组成的键值对称为元素
 
  2. 分类
 
  ?按Key类型分组
 
  索引数组 键是整数0,1,2,3,的数组
 
  $array = array(1, 2, 3, 4);
 
  关联数组 键是整数或字符串
 
  $array = array("M" => "May","J" => "Jax,);
 
  混合数组 键既有字符串,又有整数
 
  $array= array( “foo”=>”bar”, 1=>2);
 
  ?按维度分组
 
  一维:$array=array( ‘foo’=>’bar’)
 
  二维:数组中的一个或多个元素是数组
 
  三维:数组中的一个或多个元素是数组且包含一个数组
 
  多维:.....
 
  3. 创建
 
  ·方法一:$Arr = array(“hello”, “world”, “haha”)
 
  ·方法二:$Arr=[“hello”, “world” , “haha”]
 
  ·方法三:$Arr[Key]=”Value”
 
  4. 指针
 
  创建一个数组时,指针默认指向数组的第一个元素
 
  Key($arr) - 获取当前数组元素的键
 
  Current($arr) - 获取当前数组元素的值
 
  prev($arr) - 将数组的内部指针倒回一位
 
  Next($arr) - 将当前的指针后(右)移
 
  Reset($arr) - 将指针复位
 
  5. 遍历Foreach
 
  格式一,取键与值:
 
  Foreach($Array as $Key => $Value){
 
  Expression;
 
  }
 
  格式二,只取值:
 
  Foreach($Array as $Value){
 
  Expression;
 
  }
 
  ※ Foreach遍历原数组的副本,并不能更改每个元素的值,若需要该值,则加上“&”
 
  ※ 不支持用"@"抑制错误信息
 
  6. 提取List
 
  ---list()可以在把数组中的值赋给一组变量,仅用于索引数组,并假定索引从 0 开始,对字符串不起作用
 
  $info = array('coffee', 'brown', 'caffeine');
 
  // 列出所有变量
 
  list($drink, $color, $power) = $info;
 
  echo "$drink is $color and $power makes it special.";
 
  // 列出他们的其中一个
 
  list($drink, , $power) = $info;
 
  echo "$drink has $power. ";
 
  7. 当前值Each
 
  ---返回数组中当前的键/值对并将数组指针向前移动一步,键值对被返回为四个单元的数组,键为:0,1,key和 value,0和key 包含有数组单元的键名,1 和 value 包含有数据
 
  $foo = array("Robert" => "Bob", "Seppo" => "Sepi");
 
  $bar = each($foo);
 
  print_r($bar);
 
  Array
 
  (
 
  [1] => Bob
 
  [value] => Bob
 
  [0] => Robert
 
  [key] => Robert
 
  )
 
  8. each和list结合遍历
 
  $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
 
  reset($fruit);
 
  while (list($key, $val) = each($fruit)) {
 
  echo "$key => $val\n";
 
  }
 
  以上例程会输出:
 
  a => apple b => banana c => cranberry
 
  9. 常用函数
 
  is_array ( $var )
 
  //检测变量是否是数组
 
  in_array ($needle, $haystack ,[ bool $strict = FALSE ] )
 
  //判断一个元素是否在数组中,返回布尔,如果第三个参数值为TRUE则检查类型是否相同
 
  range ( $start , $end , [number $step = 1 ])
 
  //建立一个包含指定范围单元的数组
 
  array_merge( $array1,array2,array3.... )
 
  //合并一个或多个索引数组,与追加内容无异。若是索引数组,键相同则将后者值覆盖前者,键不同则追加
 
  array_rand($array , $number)
 
  //从数组中取出一个或多个随机的元素,并返回他们的键
 
  shuffle ( &$array )
 
  //打乱一个数组
 
  array_push ( &$array , $value1, [$... ] )
 
  //将一个元素添加到数组的末尾,如果给数组增加一个元素,还不如用 $array[] =
 
  array_pop(&$array)
 
  //弹出数组最后一个单元(出栈)
 
  array_unshift(&$array , $value1 , [$... ] )
 
  //在数组开头插入元素,所有的数值键名将从零开始,所有文字键名保持不变
 
  array_shift(&$array)
 
  //移出数组开头元素并作为结果返回,长度减一,所有其它单元向前移动一位。所有的数字键名从零开始计数,文字键名不变
 
  10.排序函数
 
  sort ( &$array , [int $sort_flags = SORT_REGULAR ])
 
  //按数组值升序重排,只能是索引数组,关联数组被自动转
 
  rsort ( &$array , ...)
 
  //按数组值降序重排,若值完全相等则不定义其顺序,甩至末尾
 
  第三个参数:
 
  SORT_REGULAR - 正常比较单元(不改变类型)
 
  SORT_NUMERIC - 单元被作为数字来比较
 
  SORT_STRING - 单元被作为字符串来比较
 
  SORT_NATURAL - 对每个单元以"自然的顺序"对字符串进行排序(PHP 5.4.0)
 
  asort ( &$array ,[$sort_flags = SORT_REGULAR ] )
 
  按值的升序排列,且键值绑定
 
  arsort ( &$array ,..)
 
  按值的降序排列php指针,且键值绑定
 
  ksort ( &$array, [ $sort_flags = SORT_REGULAR ] )
 
  按键的升序排列,且键值绑定
 
  krsort ( &$array, ...)
 
  按键的降序排列,且键值绑定
 
  ?冒泡排序原理
 
  $arr=[16,4,5,6,3,15,11,7];
 
  $n = Count($arr);
 
  For($i=0; $i
 

(编辑:PHP编程网 - 钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!