一、数组的基本定义:
1、三种定义方式:
<?php
//数组的第一种定义方式
$array1 = array('Aka','湖南湘潭',20,'IT');
var_dump($array1);
echo '<br>array1[0]=',$array1[0];
//第二种数组的定义方式
echo '<hr/>';
$array2 = ['Aka','湖南衡阳',20,'IT',"12345678@qq.com"];
var_dump($array2);
//第三种定义方式
echo '<hr/>';
$array3[] = 10;
$array3[] = 10;
$array3[] = 10;
$array3[0] = 12;
$array3['key'] = 'value';
var_dump($array3);
echo '<br>',$array3['key'];
运行结果:
2.三种基本类型
索引数组:数组下标都为整数;
关联数组:数组下标都为字符串;
混合数组:数组下标为整数和字符串。
3.PHP数组的特点:
a.数字下标的自增长特性:从0开始自动增长,除非人为的去指定某个下标的值,否则在后面的添加
元素过程中从最大位置元素的后面开始添加;
b.特殊值下标自动转换:
示例如下:
echo '<hr/>';
$array4[false] = [false];
$array4[true] = [true];
$array4[null] = [null];
$array4[NULL] = [NULL];
var_dump($array4);
echo '<br>';
//print_r($array4);
输出数组的下标值被自动转换
c.PHP数组中的元素没有类型限制;
d.PHP数组中的元素没有长度限制;
e.PHP中的数组是很大的数据,存储位置是在堆区,堆区为当前的数组分配一块儿连续的内存。
二、多维数组
1.二维数组:
<?php
//定义二维数组
echo '这是二维数组<br>';
$array1 = array(
array('Aka','湖南衡阳',20,'IT',"12345678@qq.com"),
array('Wunder','LCS',20,'IT',"Wunder@qq.com"),
array('Caps','LCS',22,'IT',"Caps@qq.com"),
array('Perkzs','LEC',20,'IT',"Perkzs@qq.com")
);
echo '<pre>';
print_r($array1);
运行结果:
2.三维数组
//定义三维数组
echo '<hr/>';
echo '这是三维数组<br>';
$array2 = array(
array(array('Wunder','LCS',20,'IT',"Wunder@qq.com"),
array('Caps','LCS',22,'IT',"Caps@qq.com"),
array('Perkzs','LEC',20,'IT',"Perkzs@qq.com"),
array('Jangos','LEC',20,'IT',"Jangos@qq.com")
),
array(array('GinGon','LPL',20,'IT',"GinGon@qq.com"),
array('Tian','LPL',22,'IT',"Tian@qq.com"),
array('Doinb','LPL',20,'IT',"Doinb@qq.com"),
array('LWX','LPL',20,'IT',"LWX@qq.com")
)
);
echo '<pre>';
print_r($array2);
运行结果:
说明:在定义多维数组时,虽然PHP没有限制数的维数,但在实际应用中定义数组的维数不超过三维,
原因是便于代码的阅读、维数和调试。
三、遍历数组(使用forecho()方法进行遍历PHP数组)
使用示例如下:
<?php
$testArray = ['username'=>'Aka','address'=>'湖南衡阳',
'age'=>20,'major'=>'IT','Email'=>"12345678@qq.com"];
echo'<br>',$testArray['age'];
echo '<hr/>';
//使用方式一 全部遍历
foreach($testArray as $k => $v){
echo $k.':'.$v.' ','<br>';
}
//使用方式二 遍历值
echo '<br>','<hr/>';
foreach($testArray as $k => $v){
echo $v.' ','<br>';
}
//使用方式三 遍历key
echo '<br>','<hr/>';
foreach($testArray as $k => $v){
echo $k.'','<br>';
}
四、foreach()的引用赋值:
1.foreach()的传值赋值不会改变数组元素的值:
echo '<hr/>';
//foreach()的传值赋值
$array = [1,2,3];
foreach($array as $v){
$v = $v + 2;
}
print_r($array);
出现上述结果的原因是,foreach()在遍历数组时,数组元素的值$v为传值赋值,数组内元素的值并不会发生变化。
2.用foreach()的引用赋值来改变数组内元素的值
echo '<hr/>';
//foreach()的引用赋值
$array = [1,2,3];
//在变量前加'&'符号,引用赋值
foreach($array as &$v){
$v = $v + 2;
}
print_r($array);
echo '<br> $v=';
print_r($v);
结果:
注意:在使用foreac()的引用赋值时,要注意as关键字后表示数组元素键名和值的变量,相当于在开发中我们定义的一个全
局变量,在数组遍历完之后依然可以使用,因此为了防止下次使用$v变量时对上一次有影响,在每次使用完foreach()的引用
赋值后,利用unset()函数释放掉变量$v。