您的位置 首页 php

每天一个常用PHP函数-array_flip、array_intersect_key

e7698d81a9d64706bb6c9b86d3e4ccdc

场景

通常前端通过api传到后端的数据,后端都是需要校验的,还有一点,数据有可能会有多余字段,通常我们可能会这么用 $_POST 如laravel中的$requst->input等,我们需要按需取,把多余字段过滤掉。

语法

 array_flip ( array $array ) : array 交换数组的key与value,key编程value,value编程keyarray_intersect_key ( array $array1 , array $array2 [, array $... ] ) : array返回所有array1中同时在array2中存在的元素  

使用

 // 程序中需要的数据$needKeys = [    'username', 'age', 'gender'];// 接口中给的数据$apiResult = [    'method' => 'post',    'version' => '0.01',    'username' => '快乐的小鸟',    'ages' => 32,    'gender' => 'man'];$result = array_intersect_key($apiResult, array_flip($needKeys));print_r($result);/**Array(    [username] => 快乐的小鸟    [gender] => man)**/  

那如果在Laravel中如何使用呢

 $request->all($keys) 或者 $request->input($keys)  

e7b291fcb6a84a3e85238484ff6c40af

 namespace App\Http\Controllers\Api\Export;use App\Http\Controllers\Api\Controller;use Dingo\Api\Contract\Http\Request;class TestController extends Controller{    public function index(Request $request)    {        $params = $request->all([            'name',            'gender'        ]);        return $params;    }}// 具体实现  public function all($keys = null){    $input = array_replace_recursive($this->input(), $this->allFiles());    if (! $keys) {      return $input;    }    $results = [];    // 通过in_array获取需要的字段    foreach (is_array($keys) ? $keys : func_get_args() as $key) {      Arr::set($results, $key, Arr::get($input, $key));    }    return $results;}  

文章来源:智云一二三科技

文章标题:每天一个常用PHP函数-array_flip、array_intersect_key

文章地址:https://www.zhihuclub.com/37454.shtml

关于作者: 智云科技

热门文章

网站地图