开发路上遇到的绊脚石

这里的内容是个人在日常学习过程中遇到的问题,以及对应的解决方法。(按照时间节点归纳)

1.Laravel框架中资源包predis引入需注意的一些问题

引入 predis 资源包之后,如果你的 php 已经打开了 redis 扩展,那么在 laravel 中使用 predis 扩展时可能会通过 use Redis;的门脸类方式引入 Redis 类,但这时会与 redis 扩展冲突。解决的方法是直接使用完整的命名空间Illuminate\Support\Facades\Redis;引入 redis 。

2.二维/多维数组的判空

工作中在使用 tp5 的Db方法查询出的结果集都是二维数组,当结果集为空使,框架会自动转成1维空数组,因此可以直接使用 empty 判断结果集是否为空。上星期在写报表接口时,遇到了多维数组的判空,特此做个记录。

二维数组

要判断二维数组是否为空,可以使用 array_filter() 将先空数组过滤,再使用 empty 判断即可!

$arr = [[],[],[],[]];

if(empty(array_filter($arr))) {
    echo '空';
}else {
    echo '非空';
}

需要注意的是 array_filter 函数在没有提供回调函数时,会删除 array 中所有等值为 FALSE 的条目

多维数组

要判断多维数组是否为空,就需要使用到 array_walk_recursive() 函数递归地对数组进行判断了。

$arr = [[[]],[[]],[[]]];
$is_empty = true;
array_walk_recursive($arr, function($value) use (&$is_empty) {
    if($value) {
        $is_empty = false;
    }
});

var_dump($is_empty);exit;

通过在回调函数中改变是否为空的标志 $is _empty 即可完成多维数组的判空。

猜你喜欢

转载自blog.csdn.net/MShuang6666/article/details/80676717