php 数组操作(增加,删除,查询,排序)等函数说明

数据增加,删除,查询,排序详细说明

  对数组的添加(首尾数据添加(不限定条数)以及中间任意位置添加数据操作) .

  2~对数组的删除(首尾的数据删除(不限定条数)以及中间任意位置的数据删除操作,条件:对数组中间位置删除的,后面的值往前挪,接上以前的位置) .

  3~对数据的排序操作(排序操作,要的是效率) .

  4~对数组的查询(对数组中的某一数据进行查询,如果满足,则生成新的数组,这个新的数组就是满足查询条件的,条件:查询,并不是查询某一个值,还有查询某一个值满足某个条件,举个例子:查询数组中某个值大于5的,全部筛选出来)

  1、php中的数组实质上是map结构,对于索引数组,添加或删除元素,它并不重新索引。

  2、避免混合索引数组和关联数组

  其余的要求,查找php手册应该有答案。

  说实话,我一直记不住那么多函数。

  3。默认的冒泡排序,堆排序,快速排序,插入排序,二分。看你的需求情况了

  4.还是循环。

  PHP数组虽然强大,但效率也很低

  2 数组的删除,以字符串为索引的,直接删除就OK。unset

  以数字为索引的,unset删除,然后使用array_values重置数组。

  3 usort排序,可以利用callback函数自己来实现算法。效率主要看你写的算法如何。

  1~对数组的添加(首尾数据添加(不限定条数)以及中间任意位置添加数据操作) .

  arrar_unshift(数组头部添加数据)

  array_push(数组尾部添加数组)

  arrar_fill(中间任意位置添加)

  2~对数组的删除(首尾的数据删除(不限定条数)以及中间任意位置的数据删除操作,条件:对数组中间位置删除的,后面的值往前挪,接上以前的位置) .

  array_shift(数组头部删除数据)

  array_pop(数组为不删除数据)

  array_slice不会对原始数组造成任何修改,我是想说array_splice。

  刚才又查了下手册,发现array_splice功能好强大,对数组的任何位置的任何个数的增删改操作,都可以用array_splice搞定。

  关于非哈希数组重建数字索引的问题,array_merge和array_values都可以,刚才经过试验,后者更快

  什么是数组?

  在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量。

  无需很多相似的变量,你可以把数据作为元素存储在数组中。

  数组中的元素都有自己的 ID,因此可以方便地访问它们。

  有三种数组类型:

  数值数组

  带有数字 ID 键的数组

  关联数组

  数组中的每个 ID 键关联一个值

  多维数组

  包含一个或多个数组的数组 数值数组

  数值数组存储的每个元素都带有一个数字 ID 键。

  可以使用不同的方法来创建数值数组:

  例子 1

  在这个例子中,会自动分配 ID 键:

  $names = array("Peter","Quagmire","Joe");

  例子 2

  在这个例子中,我们人工分配的 ID 键:

  $names[0] = "Peter";

  $names[1] = "Quagmire";

  $names[2] = "Joe";

  可以在脚本中使用这些 ID 键:

  

复制代码 代码如下:

  <?php

  $names[0] = "Peter";

  $names[1] = "Quagmire";

  $names[2] = "Joe";

  echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";

  ?>

  以上代码的输出:

  Quagmire and Joe are Peter's neighbors

  关联数组

  关联数组,它的每个 ID 键都关联一个值。

  在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。

  通过关联数组,我们可以把值作为键,并向它们赋值。

  例子 1

  在本例中,我们使用一个数组把年龄分配给不同的人:

  

复制代码 代码如下:

  $ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);

  例子 2

  本例与例子 1 相同,不过展示了另一种创建数组的方法:

  

复制代码 代码如下:

  $ages['Peter'] = "32";

  $ages['Quagmire'] = "30";

  $ages['Joe'] = "34";

  可以在脚本中使用 ID 键:

  

复制代码 代码如下:

  <?php

  $ages['Peter'] = "32";

  $ages['Quagmire'] = "30";

  $ages['Joe'] = "34";

  echo "Peter is " . $ages['Peter'] . " years old.";

  ?>

  以上脚本的输出:

  Peter is 32 years old.

  多维数组

  在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。

  例子 1

  在本例中,我们创建了一个带有自动分配的 ID 键的多维数组:

  

复制代码 代码如下:

  $families = array

  (

  "Griffin"=>array

  (

  "Peter",

  "Lois",

  "Megan"

  ),

  "Quagmire"=>array

  (

  "Glenn"

  ),

  "Brown"=>array

  (

  "Cleveland",

  "Loretta",

  "Junior"

  )

  );

  如果输出这个数组的话,应该类似这样:

  

复制代码 代码如下:

  Array

  (

  [Griffin] => Array

  (

  [0] => Peter

  [1] => Lois

  [2] => Megan

  )

  [Quagmire] => Array

  (

  [0] => Glenn

  )

  [Brown] => Array

  (

  [0] => Cleveland

  [1] => Loretta

  [2] => Junior

  )

  )

  例子 2

  让我们试着显示上面的数组中的一个单一的值:

  echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?";

  以上代码的输出:

  Is Megan a part of the Griffin family?

  基本概念

  PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。因此既可以把php的数组当做普通数组使用,也可以用它来模拟字典、集合、栈、队列、树等多种其他数据结构。

  数组的创建:

  创建数组的一般格式为:$arrName = array( [key =>]value, ...),其中key 可以是 integer 或者 string,而value 可以是任何值。

  示例:

  

复制代码 代码如下:

  $arr1 = array('aaa', 'bbb');

  $arr2 = array('a'=>'AAA', 'b'=>'BBB');

  创建空数组:$arr = array();

  如果数组不存在,那么向数组存放值将创建数组,但是在一个还没有定义的数组中检索一个值不会创建数组。

  

复制代码 代码如下:

  $arr[0] = 'aaa';

  $arr[1] = 'bbb';

  foreach($arr as $v){

  echo $v;

  }

  操作数组

  1:在数组末尾添加值

  

复制代码 代码如下:

  $arr = array('a'=>'AAA', 'b'=>'BBB');

  $arr[] = 'CCC';

  2:遍历数组

  方法1

  

复制代码 代码如下:

  $arr = array('a'=>'AAA', 0=>'BBB');

  foreach($arr as $a){

  echo $a;

  }

  方法2

  $array = array(1, 2);

  $count = count($array);

  for ($i = 0; $i < $count; $i++) {

  echo $array[$i];

  }

  3:清空整个数组

  unset($arr);

  4:清空指定元素

  unset($arr[index]);

  常用数组函数

  print_r($arr);

  查看数组信息;

  unset();

  该函数允许取消一个数组中的键名。要注意数组将不会重建索引。

  $a = array( 1 => 'one', 2 => 'two', 3 => 'three' );

  unset( $a[2] );

  /* 将产生一个数组,定义为

  $a = array( 1=>'one', 3=>'three');

  而不是

  $a = array( 1 => 'one', 2 => 'three');

  */

  count()或者sizeof()

  获得数组大小;

  array_pad()

  填充数组

  零碎知识点

  php的数组分为两种数组:索引数组和关联数组。索引数组的键值为整数,从0开始;关联数组的键值为字符串。

  不管是索引数组还是关联数组,键值都不能重复。重复的话,之前的值会被覆盖。

  $arr[1] 与 $arr['1']引用相同的元素,但与 arr['01'] 引用不同元素。

  关联数组的索引值要加单引号或者双引号,在php5中不加引号会报错。但在字符串中引用数组元素时则不能加引号。

  

复制代码 代码如下:

  $arr['a'] = 'AAA';

  $arr['b'] = 'BBB';

  echo "array[a] is $arr[a]";