在编写PHP代码过程中,频繁用到数组。PHP中的数组用处很多,在使用上可以很灵活,它的方法和参数很多,我也记不住,每次写程序我都是在网上查找相应的操作方法,很无奈,只能小结一下,方便以后的使用。
下面总结的是经常用到的方法。
先定义输出方法便于看数组内容的变化:
function ForeachShow($List){
echo "------------ foreach输出 ------------<br>";
foreach($List as $Key=>$V){
echo $Key."===>".$V."<br>";
}
}
function ForShow($List){
echo "------------ for输出 ------------<br>";
for($i=0;$i<count($List);$i=$i+1){
echo $List[$i]."<br>";
}
}
1、数组的定义与赋值
//1.
$List=array("C#","Java","PHP","JavaScript","Python");
ForeachShow($List);
//ForShow($List);//使用这个方法也是可以的
//2.
$List1=[];
$List1[1]="C#";
$List1[2]="Java";
$List1[3]="PHP";
ForeachShow($List1);
//ForShow($List);//使用这个方法报错,因为索引没有定义完整
//3.
$List2=array("A"=>"C#","BB"=>"Java","CCC"=>"PHP");
ForeachShow($List2);
//ForShow($List);//使用这个方法报错,因为索引变成字符了
注意:第2种和第3种赋值方法使用for循环输出会报错,因为索引变化了。
2、增加数组元素
$List=array("C#","Java","PHP","JavaScript","Python");
echo "数组原有元素:<br>";
ForeachShow($List);
echo "<br>";
array_unshift($List,"Fortran","FoxPro");//在数组的最前面增加元素
echo "数组增加元素:<br>";
$List[]="asp.net";//在数组的最后增加元素
$List['HaoR']="C/C++";//在数组的最后增加元素
array_push($List,"VB","PowerBuilder");//在数组的最后增加元素
$NewList=["DelPhi","汇编"];
array_splice($List,2,0,$NewList);//在数组位置2上插入元素
ForeachShow($List);
输出结果:
3、删除数组元素
$List=array("C#","Java","PHP","JavaScript","Python");
echo "数组原有元素:<br>";
$List['HaoR']="C/C++";//在数组的最后增加元素
$List[]="VB/VBA/VBS";//在数组的最后增加元素
$List['HTML']="Html5+CSS";//在数组的最后增加元素
ForeachShow($List);
unset($List[2]);//删除指定索引的元素:2===>PHP
unset($List['HTML']);//删除指定索引的元素:HaoR===>C/C++
ForeachShow($List);
array_splice($List, 1, 2);//删除从数组位置1开始的2个元素
ForeachShow($List);
$List=array_diff($List,["Python","VB/VBA/VBS"]);
ForeachShow($List);
输出:
array_splice($List, 1, X),这里的X可以为负数,但是这样麻烦。
array_shift是删除数组的第一个元素。
$List1=array("C#","Java","PHP","JavaScript","Python");
array_shift($List1);
ForeachShow($List1);
4、数组合并
$List1=array("C#","Java","PHP","JavaScript","Python");
$List2=array("C++/C","Delphi");
$List3=array_merge($List1,$List2);
ForeachShow($List3);
echo "<br>";
$List3=$List2 + $List1;//“+”为联合运算符,用于合并数组,如果出现下标相同的元素,则保留第1个数组内的元素。
ForeachShow($List3);
输出:
------------ foreach输出 ------------
0===>C#
1===>Java
2===>PHP
3===>JavaScript
4===>Python
5===>C++/C
6===>Delphi
------------ foreach输出 ------------
0===>C++/C
1===>Delphi
2===>PHP
3===>JavaScript
4===>Python
也可以使用插入方法,即在数组的末尾进行插入。
$List1=array("C#","Java","PHP","JavaScript","Python");
$List2=["1","2"];
array_splice($List1,count($List3),0,$List2);//在位置1上插入元素
ForeachShow($List1);
输出:
0===>C#
1===>Java
2===>PHP
3===>JavaScript
4===>Python
5===>1
6===>2
5、数组转换
主要使用两个函数,json_encode()和json_decode()函数。
json_encode()用于编码,json_decode()用于解码。
json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。
json_decode ( json [ ,assoc = false [, $depth = 512 [, $options =0 ] ] ] )函数一般只使用前面两个参数,第一个必须为utf8编码的数据,$ assoc 值为TRUE时返回数组,FALSE时返回对象。
代码:
$List=array("C#","Java","PHP","JavaScript","Python");
echo json_encode($List);
echo "<br>";
var_dump($List);
echo "<br>";
$JsonStr='{"name":"HaoR","age":"19","tool":"Python"}';
$List=json_decode($JsonStr,true);//转换成数组
ForeachShow($List);
echo "<br>";
$Obj=json_decode($JsonStr,false);//转换成对象
var_dump($Obj);
输出:
["C#","Java","PHP","JavaScript","Python"]
array(5) { [0]=> string(2) "C#" [1]=> string(4) "Java" [2]=> string(3) "PHP" [3]=> string(10) "JavaScript" [4]=> string(6) "Python" }
------------ foreach输出 ------------
name===>HaoR
age===>19
tool===>Python
object(stdClass)#1 (3) { ["name"]=> string(4) "HaoR" ["age"]=> string(2) "19" ["tool"]=> string(6) "Python" }
数组里面可以存在很多种类型的数据,比如存放对象就应用比较广泛。
① 第一次更新 2022年6月16日。