数组分为两种类型
索引数组
通过索引来操作数组
1, array(添加数组的成员, 成员类型不限)
count($arr) 求出数组arr的length长度
<?php
$arr=array(1,2,3,true,"abc");
// 通过索引取值
echo$arr[4];// "abc"
echo$arr[3];// 本来应该是true,但是输出为了1
// php中遍历数组
// 在php中小数点是拼接字符的意思 这里的length调用错误
/* for($i = 0; $i < $arr.length; $i++) { */
// 使用count方法能够计算当前数组的长度
for($i=0;$i<count($arr);$i++) {
// 打印每一项的值
echo$arr[$i]."";// 使内容之间有些距离
}
print_r($arr);
/*
Array(
[0] => 1
[1] => 2
[3] => 3
[4] => 1
[5] => abc
)
*/
?>
2,中括号的方式 ,[ ]
// 1.判断当前数组是否已经存在,如果不存在则先创建,再将元素添加到数组第一个元素位置
// 2.如果数组已经存在,那么就将当前元素添加到数组中--追加
$suzu[]='abg';
print_r($suzu);// 输出结果 Array ( [0] => abg )
关联数组
1、以键值对的方式描述数据,类似于js中的字面量对象
2、语法: array(value, value)
3、获取关联数组中的成员:通过key来获取数组中的成员
<?php
$arr=array(
"name"=>"yiyang",
"age"=>20,
"gender"=>true
);
echo$arr["gender"];// 1
// 打印数组,使用print_r( )的方法
print_r($arr);
/*
Array(
[name] => yiyang
[age] => 20
[gender] => 1
)
*/
/* 遍历关联数组的方法 */
遍历关联数组的方法
/*
foreach(数组对象 as 键 => 值) {
...
}
*/
foreach($arras$key=>$value) {
echo$key.":".$value."</br>";
}
/* => 输出
name:yiyang
age:20
gender:1
*/
// 简洁语法
foreach($arras$value) {
echo$value."</br>";
}
?>
所有的数组本质上都是关联数组, foreach方法也可以操作索引数组;
如果通过空的中括号赋值,会自动追加和排序,还会变成混合数组
操作数组的方法
1、如果没有设置key 系统会自动生成索引。索引会取到之前的最大索引+1
2、如果添加元素的时候设置key,那么就没有索引
$arr3=array(
1,
2,
'name'=>'jack',
3,
'age'=>14
);
print_r($arr3);
// 输出结果:
Array(
[0]=>1
[1]=>2
[name]=>jack
[2]=>3
[age]=>14
)
3、count( ) 计算数组的长度length
4、unset( ) 使用数组删除某一项会有一点点小问题
它也可以用来删除数组中的某个成员。但是删除了数组的元素之后,并不会对数组元素的索引产生影响,元素还会保留之前的索引。意味着它只是删除了索引位置的元素,并没有动态的改变数组的长度。
<?php
$arr=[1,2,3,4,5];
print_r($arr);
unset($arr[2])
echo'<hr/>';
print_r($arr);
/*
之前: Array([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5)
现在: Array([0] => 1 [1] => 2 [3] => 4 [4] => 5)
*/
// 索引和值都没有,变成了稀疏的了
?>
深度数组 / 二维数组
<?php
/* $arr = array(
1, 2, 3,
"name" => "tylor",
array()
); */
// 描述学生对象
$arr=array(
// 描述第一个学生对象的数据
"name"=>array(
"name"=>"tylor",
"age"=>20
),
array(
"name"=>"Bluce",
"age"=>18
)
);
print_r($arr);
/* Array(
[0] => Array(
[name] => tylor
[age] => 20
)
[1] => Array(
[name] => Bluce
[age] => 18
)
)
*/
// 通过嵌套循环输出当前的数组
foreach($arras$key=>$value) {
// 二维数组的遍历
// print_r($value); 两个内层数组
foreach($valueas$subkey=>$subvalue) {
echo$subkey.":".$subvalue."<br/>";
}
}
/* ==> 输出
name:tylor
age:20
name:Bluce
age:18
*/
?>
网友评论