首页 > 技术文章 > 学习笔记之-php数组的原理

wanghjun 2018-06-19 15:53 原文

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 返回新的数组

 

推荐阅读