zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

PHP数组排序 操作 查询 函数 删除 说明
2023-06-13 09:14:18 时间
数据增加,删除,查询,排序详细说明

对数组的添加(首尾数据添加(不限定条数)以及中间任意位置添加数据操作).
2~对数组的删除(首尾的数据删除(不限定条数)以及中间任意位置的数据删除操作,条件:对数组中间位置删除的,后面的值往前挪,接上以前的位置).
3~对数据的排序操作(排序操作,要的是效率).
4~对数组的查询(对数组中的某一数据进行查询,如果满足,则生成新的数组,这个新的数组就是满足查询条件的,条件:查询,并不是查询某一个值,还有查询某一个值满足某个条件,举个例子:查询数组中某个值大于5的,全部筛选出来)


1、php中的数组实质上是map结构,对于索引数组,添加或删除元素,它并不重新索引。
2、避免混合索引数组和关联数组
其余的要求,查找php手册应该有答案。
说实话,我一直记不住那么多函数。
3。默认的冒泡排序,堆排序,快速排序,插入排序,二分。看你的需求情况了
4.还是循环。

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


2数组的删除,以字符串为索引的,直接删除就OK。unset
以数字为索引的,unset删除,然后使用array_values重置数组。
3usort排序,可以利用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].""sneighbors";
?>

以上代码的输出:
QuagmireandJoearePeter"sneighbors

关联数组
关联数组,它的每个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"Peteris".$ages["Peter"]."yearsold.";
?>

以上脚本的输出:

Peteris32yearsold.

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

例子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]."apartoftheGriffinfamily?";
以上代码的输出:
IsMeganapartoftheGriffinfamily?



基本概念
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($arras$v){
echo$v;
}

操作数组
1:在数组末尾添加值
复制代码代码如下:
$arr=array("a"=>"AAA","b"=>"BBB");
$arr[]="CCC";

2:遍历数组
方法1
复制代码代码如下:
$arr=array("a"=>"AAA",0=>"BBB");
foreach($arras$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]";