数组,是存储多个数值的容器,php中的数组可以存储不同类型的数据。
基本语法
创建数组,使用array函数,在php5.4以后,可以使用[ ]创建
<?php
$array1 = array("张三",18,'男');
$array2 = ["李四", 22, '女'];
?>
调用数组的值,默认情况下,下标从0开始
<?php
echo $array1[0]; // 张三
echo "<br>";
echo $array2[1]; // 22
?>
关联数组
对于前面创建的基本数组,我们使用var_dump()查看数组详细内容,会得到如下数据:
array(3) { [0]=> string(6) "张三" [1]=> int(18) [2]=> string(3) "男" }
array(3) { [0]=> string(6) "李四" [1]=> int(22) [2]=> string(3) "女" }
我们可以看到数组中的每一个元素,分别对应一个下标,从0开始,如果把数字0…n改为字符串类型的键名,就叫做”关联数组“
<?php
$array3 = ['name'=>"王五", 'age'=>18];
echo $array3['name']; // 王五
?>
数组基本操作
获取数组的长度
使用count()方法,获取数组的长度
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>
遍历数组
通常使用for循环,或foreach遍历,例如
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
遍历关联数组
通常使用 foreach 遍历关联数组,foreach的基本格式为:$names as $name
这里,使用 $names as $key=>$value,其中
- $names 表示关联数组本身
- $key 表示键名
- $value 表示键值
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $key=>$value)
{
echo "Key=" . $key . ", Value=" . $value;
echo "<br>";
}
?>
数组排序
有多种排序方式,以下仅列举一部分
- sort() – 对数组进行升序排列
- rsort() – 对数组进行降序排列
- asort() – 根据关联数组的值,对数组进行升序排列
- ksort() – 根据关联数组的键,对数组进行升序排列
- arsort() – 根据关联数组的值,对数组进行降序排列
- krsort() – 根据关联数组的键,对数组进行降序排列
例如,以下实例
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars); // 升序排序
$clength=count($cars);
for($x=0;$x<$clength;$x++)
{
echo $cars[$x];
echo "<br />";
}
?>
程序输出结果:
- BMW
- Toyota
- Volvo
多维数组
数组中,包含很多个元素,其中的一个元素又可以是数组,那么就组成了多维数组
多维数组,只是简单的数组嵌套。
<?php
// A two-dimensional array:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100),
array('姓名'=>'张三', 'age'=>18)
);
echo $cars[0][1]; // 100
echo $cars[3]['姓名']; // 张三
?>
数组写入文件
php数组可以用于保存一些配置信息,使用时从配置文件读取,修改后保存回文件中,由于普通文件是可直接访问的,这里的配置信息应该保持在php文件中
编写一个配置文件,假设如下(config.php)
<?php $config=array (
'user' =>
array (
'name' => '张三',
'pwd' => '123456',
'email' => 'xxx@qq.com',
),
'base' =>
array (
'cache' => false,
'token' => 'fsdfsdfsdfwefre',
),
);
编写测试文件,代码如下:
<?php
// 1.读取配置文件
$config_file='./config.php';
require($config_file);
// 2.修改配置文件
$config['user']['name'] = '李四';
// 3.保存修改后的文件
$text='<?php $config='.var_export($config,true).';';
if(false!==fopen($config_file,'w')){
file_put_contents($config_file,$text); // $config_file 是字符串
echo '保存成功';
}else{
echo '保存失败';
}
访问测试文件,出现“保存成功”,此时再次查看config.php,仅修改了username,实现了配置文件的修改。
这里var_export与var_dump相似,但前者仅仅把变量转字符串,后者会输出一些辅助信息。
这里不使用fwrite,而使用file_put_contents,两者功能相同,参数不同,这里第一个参数是一个字符串故使用后者,file_put_contents能将一个字符串写入到一个文件中,如果需要可以增加第三个参数FILE_APPEND表示追加而不是覆盖。
本篇完,还有疑问?留下评论吧