全网最全idea主题,phpstorm主题,webstorm主题免费下载

严禁滥用数组——高阶phper的第一步

php数组简介

每个开发平台都有数组的概念,包括java、c#、javascript等。相对于其他平台而言,php中的数组比较特殊。php中不像java等语言中有很多的数据结构的实现。比如java中有各种list,set,map。php中只有一个数组,使用数组来实现其他语言平台中类似的功能。

php数组是多种数据结构的封装。php数组分为两种。

索引数组

索引数组对应javascript总的array,或者java中的list。使用int类型的索引来访问元素。

//使用array函数创建索引数组
$arr = array('hello','world','you');
//5.4新特性 短数组语法
$arr = ['hello','world','you'];
//手动分配索引
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";

关联数组

索引数组对应javaScript中的对象,或者java中的map。一个key对应一个value。value可以是任何值(int、string、array等)。而且有类似哈希映射的特性 

//使用array函数创建关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
//5.4新特性 短数组语法
$age = ['peter'=>35,'ben'=>23];
//手动分配
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

遍历数组

$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "<br>";
}

数组常用函数

因为数组是php中基础且重要的数据结构。所以php提供了一系列的函数来方便操作数组。用到的时候直接查询文档即可。

http://www.w3school.com.cn/php/php_ref_array.asp(此函数列表基于php5,新的php版本可能有更多的特性)

https://php.net/manual/en/function.sort.php

array_key_exists(key,arr)

判断数组中是否存在key

 

删除数组中的一项

Count

计算数组的长度

array_multisort 

排序

array_multisort(array_column($user_list, 'age'), SORT_ASC, $user_list);

array_unique

一维数组 去重

array_filter

过滤

array_values

重置索引(unset之后不会修改索引)

array_diff

 

 

切记不要滥用数组

php的一个优点是简单,方便入门,其中一个重大原因就是数据结构简单。数组是一个万金油,任何数据都可以使用数组来存储和访问。这样导致很多人容易滥用数组,滥用数组的结果就是代码中充斥大量字符串索引,代码无法重构,低可用性,低安全性。所以我们再使用数组的时候要有高度的自觉性,要合理地使用数组。

随着php版本的升级,新版的php提供了相对更加强大的面向对象特性,更加方便地让php工程化。除此之外一些php项目也对数据结构进行了封装。比如laravel的collection(集合)。它基于数组实现了更加面向对象的数据操作。使用起来更加的安全、可靠、方便。

在laravel中实现功能,优先考虑collection,其次才考虑数组。这样有利于代码的工程化,可重构性和安全性。

热门评论

  • lxbfYeaa
    e
  • lxbfYeaa
    e