遇到PHP方法 二维数组随机排序shuffle 二维数组筛选搜索array_filter

embedded/2024/10/18 23:59:14/

在做二维数组随机排序的时候,发现shuffle 函数挺好用,就不用在做负载的数组随机排序了,对于二维数组同样可以随机排列

php中的shuffle()函数是一个非常有用的函数,常用于随机重排数组中的元素。这个函数可以在很多开发场景中,特别是在游戏和随机化程序中,找到广泛的应用。本文将详细介绍shuffle()函数的用法和相关注意事项。

shuffle()函数没有返回值,它直接修改传递给它的数组,让元素的顺序随机变化。

同样适用于二维数组

<?php

$my_array = array("PHP", "HTML", "CSS", "JavaScript", "SQL");

shuffle($my_array);

print_r($my_array);

?>

array_filter() 函数用回调函数过滤数组中的元素。

该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr, function($element) {
   return $element > 2;
});
print_r($newArr); //输出:Array ( [2] => 3 [3] => 4 [4] => 5 )

在上面的例子中,我们传入了一个回调函数,该函数用于判断数组中的每个元素是否大于2,如果是,则保留该元素,否则删除该元素。经过处理后,只有元素3、4、5被保留下来。

也可以适应闭包函数 如下

            $result = array_filter($result['list'], function ($item) use ($topic_type) {

                        if($topic_type == '4'){

                            return $item['is_dt'] == '1';

                        }else{

                            return $item['type'] == $topic_type && $item['is_dt'] == 0;  //多个条件筛选

                        }

                        //  $item['small_title'] == null;

                    });

进行模糊搜索 如下

$users = array(
    array('name' =&gt; '张三', 'phone' =&gt; '13811112222', 'email' =&gt; 'zhangsan@example.com'),
    array('name' =&gt; '李四', 'phone' =&gt; '13911113333', 'email' =&gt; 'lisi@example.com'),
    array('name' =&gt; '王五', 'phone' =&gt; '15011112222', 'email' =&gt; 'wangwu@example.com'),
    array('name' =&gt; '赵六', 'phone' =&gt; '18011114444', 'email' =&gt; 'zhaoliu@example.com')
);

function search_users($keyword, $users) {
    $result = array_filter($users, function($user) use ($keyword) {
        foreach($user as $value) {
            if(stripos($value, $keyword) !== false) {
                return true;
            }
        }
        return false;
    });
    return $result;
}


http://www.ppmy.cn/embedded/11595.html

相关文章

数据通信核心

一.认识网络设备 互联网网络设备有AC,AP,防火墙,路由器&#xff0c;交换机等。 这里我们一起了解一下 框式交换机—— 主控板相当于大脑&#xff0c;属于控制平面 交换机网板——数据平面&#xff0c;转发平面——进行不同网卡之间的数据交换&#xff08;设备内部之间的转发…

Linux 使用用户级别的 systemd 服务

目录 使用用户级别的 systemd 服务示例 .service 文件内容然后执行以下命令使服务生效&#xff1a; 使用用户级别的 systemd 服务 可以创建一个用户级别的 systemd 服务来实现开机启动。这种方式更加灵活和规范&#xff0c;适用于需要长期运行的服务或后台任务。 创建一个 .s…

C++11单例模式

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

C++ stl容器list的底层模拟实现

目录 前言&#xff1a; 1.创建节点 2.普通迭代器的封装 3.反向迭代器的封装 为什么要对正向迭代器进行封装&#xff1f; 4.const迭代器 5.构造函数 6.拷贝构造 7.赋值重载 8.insert 9.erase 10.析构 11.头插头删&#xff0c;尾插尾删 12.完整代码简单测试 总结&…

JS-47-Node.js06-fs模块-读写文件

Node.js内置的fs模块就是文件系统模块&#xff0c;负责读写文件。 和所有其它JavaScript模块不同的是&#xff0c;fs模块同时提供了异步和同步的方法。 一、回顾&#xff1a;异步方法VS同步方法 1-1、异步方法 因为JavaScript的单线程模型&#xff0c;执行IO操作时&#xff…

【前后端的那些事】SpringBoot 基于内存的ip访问频率限制切面(RateLimiter)

文章目录 1. 什么是限流2. 常见的限流策略2.1 漏斗算法2.2 令牌桶算法2.3 次数统计 3. 令牌桶代码编写4. 接口测试5. 测试结果 1. 什么是限流 限流就是在用户访问次数庞大时&#xff0c;对系统资源的一种保护手段。高峰期&#xff0c;用户可能对某个接口的访问频率急剧升高&am…

企业设计cad图纸加密软件如何才能自动加密图纸题

企业要发展&#xff0c;时代在进步&#xff0c;每一个企业的信息化建设也在不断的加强&#xff0c;对企业来讲关乎企业发展的让企业在行业中有竞争力的措施&#xff0c;企业数据安全已经成为每一个企业发展必经的一步&#xff0c;那么企业中有什么数据是需要防泄密处理的呢&…

STM32 ADC转换器

一、ADC简介 ADC&#xff08;Analog-Digital Converter&#xff0c;模拟-数字转换器&#xff09;&#xff0c;可以将引脚上连续变化的模拟量转换为内存中存储的数字量&#xff0c;建立模拟电路到数字电路的桥梁 模拟量&#xff1a;时间和幅值均连续的信号&#xff0c;例如&…