聊聊Laravel框架相关的助手函数(框架版本5.4)

285 阅读1分钟

本文已参与【新人创作礼】活动 ,一起开启掘金创作之路

1.array_values(php内置函数) 与 array_flatten(laravel框架助手函数)
array_flatten 将多维数组转化为一维数组
array_values 将关联数组转化为索引数组(将字符串类型的key值转化为数字类型的key值)
$arrays = [
    'phpframe' => ['Laravel','ThinkPHP','Yii','CodeIgniter'],
    'programming_language' => ['PHP', 'C','C#', 'Java']
];
$array = array_flatten($arrays);
$array_other = array_values($arrays);
var_dump($array,$array_other);exit;

picture.jpg

2.array_first 函数返回数组中第一个通过指定条件筛选的元素
$array = [1001, 2000, 3000]; 
$value = array_first($array, function ($value, $key) {
     return $value % 2 == 0; 
}); 
dump($value);
//int 2000

//可传递第三个参数作为默认值。当没有元素通过条件筛选时,将会返回该默认值:
$value = array_first($array, $callback, $default);

$value = array_first($array, function ($value, $key) {
    return is_string($value);
},'i am a string!!!');
dump($value);
//string 'i am a string!!!' (length=16) 
3.array_last 函数返回数组中最后一个通过指定条件筛选的元素:
$array = [1500, 2000, 3000, 1100]; 
$value = array_last($array, function ($value, $key) { 
    return $value >= 1500; 
});
dump($value);
//int 3000
4.array_only 函数从数组返回指定的键值对:
$array = ['uid' => '100001', 'price' => 100, 'order_id' => '202204091642301001'];
$array = array_only($array, ['uid', 'order_id']);
dump($array);
array (size=2)
  'uid'      => string '100001' (length=6)
  'order_id' => string '202204091642301001' (length=18) 
5.array_pluck 函数从数组里面找出指定键对应的所有值:
$array = [ 
    [
        'developer' => [
            'uid' => 1001, 
            'name' => 'Taylor'
        ]
    ],
    [
        'developer' => [
            'uid' => 1002, 
            'name' => 'Swift'
        ]
    ]
]; 
$array = array_pluck($array, 'developer.name'); 
dump($array);
//
array:2 [
  0 => "Taylor"
  1 => "Swift"
];

//你也可以指定要以什么作为结果列的键名 作用类似于php内置函数array_column($arr,$column_key,$index_key): 
$array = array_pluck($array, 'developer.name', 'developer.uid'); 
dump($array);
// 
array:2 [
  1001 => "Taylor"
  1002 => "Swift"
];
6.array_prepend 函数将元素加到数组的头部:
$array = ['CBA', 'NBA', 'Football', 'Basketball']; 
$array = array_prepend($array, 'Volleyball');
var_dump($array);

array (size=5)
  0 => string 'Volleyball' (length=10)
  1 => string 'CBA' (length=3)
  2 => string 'NBA' (length=3)
  3 => string 'Football' (length=8)
  4 => string 'Basketball' (length=10) 

7.array_add()

array_add 函数添加给定键值对到数组,如果给定键不存在的话:

    $array = array_add(['name' => 'Tom'], 'age', 18);
    
    var_dump($array);
    # 输出 ['name' => 'Tom', 'age' => 18]
8.array_divide()

array_divide 函数返回两个数组,一个包含原数组的所有键,另外一个包含原数组的所有值:

    list($keys, $values) = array_divide(['name' => 'Tom', 'age' => 18]);
    # 输出
    // $keys: ['name','age']
    // $values: ['Tom',18]