Laravel 5.8 代码中 Get 到的小彩蛋

栏目: PHP · 发布时间: 7年前

内容简介:今天看Laravel5.8代码的时候,看到几个小彩蛋。1、获取关联数组中指定部分键值组成的数组

今天看 Laravel 5.8代码的时候,看到几个小彩蛋。

Laravel 5.8 代码中 Get 到的小彩蛋

1、获取关联数组中指定部分键值组成的数组

项目中常常有这么一种场景,一些数据的生成需要一些其他的数据获得,但是返回给用户的不需要原始数据。比如对于一个用户数据如下:

{
    "userid":10,
    "username":"abc",
    "type":1,
    "status":1,
    "system_code":"xtfy",
    "system_uid":1,
    "file_id":1
}

如果我最终想要返回给用户的结果如下

{
    "userid":10,
    "username":"abc",
    "type":1,
    "status":1
}

这种情况就需要获取数组中指定的部分内容。实现方式有一下几种方式:

  • unset不需要的数据字段

  • 重新创建一个变量,然后一个个字段的添加到新数组中去

在Laravel5.8中Support\Arr中有一个only方法,使用 php 原生数组函数的键名交集,返回指定键数组的内容。实现方式如下:

array_intersect_key(
	$array, 
	array_flip((array) $keys)
);

根据这个思路,获取指定键之外的数组可以用下面的方式实现:

array_diff_key(
	$array, 
	array_flip((array) $keys)
)

2、如何判断关联数组

首先明白关联数组是什么。下面这样是关联数组

$a = [3=>1,4=>'a'];
$b=['a'=>1,'b'=>2];

而以下内容则不是

$a = [1,2,3];
$b = [0=>1,1=>2,2=>3];

如何判断一个数组是不是关联数组呢?之前的做法都是判断键是否都是数字,其实是不准确的。

在Laravel5.8中有一个isAssoc方法。实现方式如下:

$keys = array_keys($array);

return array_keys($keys) !== $keys;

简单而言,如果数组key的key还是一样的,则不是关联数组。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Foundations of PEAR

Foundations of PEAR

Good, Nathan A./ Kent, Allan / Springer-Verlag New York Inc / 2006-11 / $ 50.84

PEAR, the PHP Extension and Application Repository, is a bountiful resource for any PHP developer. Within its confines lie the tools that you need to do your job more quickly and efficiently. You need......一起来看看 《Foundations of PEAR》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具