PHP基础语法总结(二)
这篇文章,是继续上篇文章PHP基础语法总结(一),总结一下PHP中数组类的用法。
1. 数值数组
类似于C语言中的整型数组或者浮点型数组,每个数组有个数字标识键,索引从0开始,定义的代码,例如:
#!/usr/bin/php
<?php
$numbers=array(12,32,4123,5345,56);
$names=array("allen","junyu","superstar");
var_dump($numbers,$names);
?>
其中var_dump
是用来显示变量信息的函数。
运行的结果为:
array(5) {
[0]=>
int(12)
[1]=>
int(32)
[2]=>
int(4123)
[3]=>
int(5345)
[4]=>
int(56)
}
array(3) {
[0]=>
string(5) "allen"
[1]=>
string(5) "junyu"
[2]=>
string(9) "superstar"
}
2. 关联数组
PHP关联数组就是一些key-value对,其索引就不是数字,而是可以是字符串,类似python里的字典的概念。
定义代码示例如:
#!/usr/bin/php
<?php
$ages=array("Alice"=>32,"Bob"=>30,"Cathy"=>28);
var_dump($ages);
?>
注意到其赋值标识符为“=>”,这个跟别的语言有较大的不同,运行结果为:
array(3) {
["Alice"]=>
int(32)
["Bob"]=>
int(30)
["Cathy"]=>
int(28)
}
可以看出,其实数值数组和关联数组是统一的,都是key-value的键值对,只不过是以作为key的索引是否是顺序数字来区分的。
3. 增加、删除、修改和遍历数组元素
有了数组的定义,就需要对数组进行增删改查,方法有很多种,这里先写基本和简单的形式。
增加
利用
arrayname[]可以增加键值对,对于一个数组变量
array_var,使用$array_var['new_key']="new_value"
,即可增加一对新的键值对[‘new_key’]=>”new_value”,示例代码如下:
#!/usr/bin/php
<?php
$names=array("allen","junyu","superstar");
echo "Before add\n";
var_dump($names);
$names['new']="xuangege";
echo "After add\n";
var_dump($names);
?>
运行结果如下:
Before add
array(3) {
[0]=>
string(5) "allen"
[1]=>
string(5) "junyu"
[2]=>
string(9) "superstar"
}
After add
array(4) {
[0]=>
string(5) "allen"
[1]=>
string(5) "junyu"
[2]=>
string(9) "superstar"
["new"]=>
string(8) "xuangege"
}
其实,对于数值数组,可以直接使用$arrayname[]=”new_value”,它就可以通过在最大的索引数自动加一来添加新的键值对,如上面的例子中,代码修改为$names[]="xuangege";
,则运行结果如下:
Before add
array(3) {
[0]=>
string(5) "allen"
[1]=>
string(5) "junyu"
[2]=>
string(9) "superstar"
}
After add
array(4) {
[0]=>
string(5) "allen"
[1]=>
string(5) "junyu"
[2]=>
string(9) "superstar"
[3]=>
string(8) "xuangege"
}
删除
unset用来销毁变量,也可以用它来删除数组元素,代码示例如下:
#!/usr/bin/php
<?php
$names=array("allen","junyu","superstar");
echo "Before del\n";
var_dump($names);
unset($names[2]);
echo "After del\n";
var_dump($names);
?>
运行结果如下:
Before del
array(3) {
[0]=>
string(5) "allen"
[1]=>
string(5) "junyu"
[2]=>
string(9) "superstar"
}
After del
array(2) {
[0]=>
string(5) "allen"
[1]=>
string(5) "junyu"
}
修改
修改就比较简单了,例如:$names[1]="bob";
就修改了第二个元素为”bob”。
遍历
可以使用for循环和foreach来进行数组遍历,for循环适用于数值数组,因为他们的key都是顺序的数字,而foreach适用于数值数组和关联数组。
for和foreach来遍历的使用示例如下:
#!/usr/bin/php
<?php
$names=array("allen","junyu","superstar");
$count=count($names);
for($i=0;$i<$count;$i++){
echo "in for, the $i element is $names[$i]\n";
}
$fullnames=array("allen"=>"junyu","david"=>"deng","xuangege"=>"hu");
foreach($fullnames as $key=>$value){
echo "in foreach, key:$key => value:$value\n";
}
?>
显示结果如下:
in for, the 0 element is allen
in for, the 1 element is junyu
in for, the 2 element is superstar
in foreach, key:allen => value:junyu
in foreach, key:david => value:deng
in foreach, key:xuangege => value:hu
参考文献
[1] 何俊斌,陈浩. 从零开始学PHP,北京:电子工业出版社