1.数组的定义方式
array 或者 []
print_r([['a' =>1,3],[2,4]]);
2.数组的 key 和 value的限制条件
1) key 只能是整型或者字符串类型
2) 健名相同的之前的会被覆盖
3) 浮点型会转换成整型
4) null会存储为''(空字符串)
3.数组的间接访问 php5.4以上的版本才支持
<?php function d(){ return array(1,2,3); } echo d()[1]; //输出:2
4.数组的unset();
删除数组元素后,数组不会重新建立索引,需要重新建立可以使用 array_values();
5.数组类型的转换
将字符串转换成数组 $arr = (array) $string;
6.foreach的引用
<?php $arr = array(1,2,3); foreach ($arr as $key => &$value) { } foreach ($arr as $key => $value) { echo $value; } //结果 1 2 2
注:foreache循环再内部使用的是指针的方式,比for快,所以数组能用foreach循环就使用foreach循环.foreach循环完之后$value的作用域并不是只存在于foreach中
结果原因:
第一遍foreach
第一次: $value = &$arr[0] = 1;
第二次: $value = &$arr[1] = 2;
第一次: $value = &$arr[2] = 3;
第二遍foreach
第一次:$value = &$arr[2] = $arr[0] = 1; //此时$arr[2] = 1
第二次:$value = &$arr[2] = $arr[1] = 2; //此时$arr[2] = 2
第三次:$value = &$arr[2] = $arr[2] = 2; //$arr[2] 再上一次循环中已经赋值等于2 所以$value 为2
数组的遍历函数:
array_walk 采用引用的方式进行遍历,改变的是原数组
array_map 返回新的数组