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

在做二维数组随机排序的时候,发现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.mzph.cn/diannao/3136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个联合均值与方差模型的R包——dglm

目录 一、引言二、包的安装与载入三、模拟例子3.1 数据生成3.2 数据查看3.3 模型估计参数 一、引言 在 R 语言中&#xff0c;dglm 包是用于拟合双参数广义线性模型&#xff08;Double Generalized Linear Models&#xff0c;简称 DGLMs&#xff09;的一个工具。这类模型允许同…

模块三:二分——162.寻找峰值

文章目录 题目描述算法原理解法一&#xff1a;暴力查找解法二&#xff1a;二分查找 代码实现解法一&#xff1a;暴力查找解法二&#xff1a;CJava 题目描述 题目链接&#xff1a;162.寻找峰值 根据题意&#xff0c;需要使用O(log N)的时间复杂度来解决&#xff0c;得出本道题…

.rmallox勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

导言&#xff1a; 在当今数字化的时代&#xff0c;计算机病毒已成为网络安全的一大威胁。其中&#xff0c;.rmallox勒索病毒以其高度的隐蔽性、快速的传播速度、巨大的危害性和不断变种的特性&#xff0c;引起了广大用户的关注。本文将详细解析.rmallox勒索病毒的特点&#xf…

在美国站群服务器部署时如何保障从253个IP到1000个IP的无缝扩展?

在美国站群服务器部署时如何保障从253个IP到1000个IP的无缝扩展? 在当今企业的数字化转型中&#xff0c;服务器的部署和管理成为了保证业务连续性和拓展性的关键。尤其对于站群服务器来说&#xff0c;随着企业业务的增长和市场的扩展&#xff0c;需要从较小规模的253个IP地址…

AWTK 异形进度条控件发布

异形进度条控件。通过多边形来定义进度条的形状。 代码地址&#xff1a;https://gitee.com/zlgopen/awtk-widget-progress-polygon 特性 通过多边形定义进度条的形状支持通过图片来定义进度条的背景支持通过图片来定义进度条的前景 使用图片填充比使用颜色填充消耗更多的内…

Debezium分享系列之:Debezium2.6稳定版本设置SQL Server数据库

Debezium分享系列之:Debezium2.6稳定版本设置SQL Server数据库 一、在 SQL Server 数据库上启用 CDC二、在 SQL Server 表上启用 CDC三、验证用户是否有权访问 CDC 表四、SQL Server Always On五、SQL Server 捕获作业代理配置对服务器负载和延迟的影响六、SQL Server 捕获作业…

速盾:常见的DDOS攻击类型有哪些?

DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种通过使目标系统超负荷而使其无法正常工作的网络攻击手段。在这种攻击中&#xff0c;恶意攻击者使用多个主机或设备&#xff08;也被称为僵尸网络或机器人网络&#xff09;来同时向目标系统发送大量的网络流量&#xff0c;…

数据结构练习-线性表定义与基本操作

----------------------------------------------------------------------------------------------------------------------------- 1. 线性表是( )。 A.一个有限序列&#xff0c;可以为空 B. 一个有限序列&#xff0c;不可以为空 C. 一个无限序列&#xff0c;可以为空…

第三次国土调查数据库字母缩写代表含义

CCWJQ拆除未尽区&#xff0c;CJDCQ村界调查区&#xff0c;CJDCQJX村界调查区界线&#xff0c;CLKZD测量控制点&#xff0c;CSKFBJ城市开发边界&#xff0c;CZCDYD城镇村等用地&#xff0c;DGX等高线&#xff0c;DLTB地类图斑&#xff0c;DZGY地质公园&#xff0c;FJMSQ风景名胜…

【一般排查思路】针对银河麒麟高级服务器操作系统磁盘空间已满

1. 本身磁盘空间已满 有时候我们会看到服务器上有提示“设备上没有空间”&#xff0c;如图1。 图 1 如果是磁盘本身空间已满&#xff0c;我们可以借助du工具来排查&#xff0c;比如首先cd / 切换到根目录&#xff0c;然后 du -sh * | sort -rh | head -n 3查看空间占用最大的…

【Unity】苹果(IOS)开发证书保姆级申请教程

前言 我们在使用xcode出包的时候&#xff0c;需要用到iOS证书(.p12)和描述文件(.mobileprovision) 开发证书及对应的描述文件用于开发阶段使用&#xff0c;可以直接将 App 安装到手机上&#xff0c;一个描述文件最多绑定100台测试设备 1.证书管理 进入网站Apple Developer &…

面向对象-其他(多态、类)

目标 面向对象三大特性类属性和实例属性类方法和静态方法 一. 面向对象三大特性 封装 将属性和方法书写到类的里面的操作即为封装封装可以为属性和方法添加私有权限 继承 子类默认继承父类的所有属性和方法子类可以重写父类属性和方法 多态 传入不同的对象&#xff0c;产生不…

【C++】STL-vector模拟实现

目录 1、vactor的模拟实现 1.1 成员变量 1.2 size、capacity 1.3 迭代器 1.4 构造、析构、拷贝构造、operator 1.5 push_back、pop_back、reserve 1.6 operator[] 1.7 insert、erase 1.8 resize 2、使用memcpy拷贝问题 1、vactor的模拟实现 1.1 成员变量 vector是顺…

架构师系列-Nginx、OpenResty(一)- 基本使用配置

Nginx 模块 高度模块化的设计是 Nginx 的架构基础&#xff0c;Nginx 服务器被分解为多个模块&#xff0c;每个模块就是一个功能模块&#xff0c;只负责自身的功能&#xff0c;模块之间严格遵循“高内聚&#xff0c;低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行…

数据库系统原理实验报告4 | 数据完整性

整理自博主本科《数据库系统原理》专业课自己完成的实验报告&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 专业课本&#xff1a; ———— 本次实验使用到的图形化工具&#xff1a;Heidisql 目录 一、实验目的 二、实验内容 1、建表 2、对1题中创建的Stud…

<计算机网络自顶向下> 无连接传输UDP

UDP&#xff1a;User Datagram Protocol “尽力而为”的服务 报文可能丢掉或者乱序好处&#xff1a; 效率高&#xff08;不建立连接无拥塞控制和流量控制【应用->传输的速率主机->网络的速率】&#xff09;报文段的头部很小&#xff08;开销小&#xff09;UDP被用于 流媒…

JVM常见的垃圾回收器

1、回收方法区&#xff1a; 方法区回收价值很低&#xff0c;主要回收废弃的常量和无用的类。 方法区中的存储&#xff1a; 方法区中存储的是加载的类的信息&#xff0c;常量&#xff0c;静态变量&#xff0c;即时编译后的代码等数据&#xff0c;所以回收的对象也就是这些内…

如何在一台服务器上同时运行搭载JDK 8, JDK 17, 和 JDK 21的项目:终极指南

&#x1f42f; 如何在一台服务器上同时运行搭载JDK 8, JDK 17, 和 JDK 21的项目&#xff1a;终极指南 &#x1f680; 摘要 在企业开发环境中&#xff0c;常常需要在同一台服务器上运行使用不同Java开发工具包&#xff08;JDK&#xff09;版本的多个项目。本文详细介绍如何在L…

报错import build constraints exclude all Go files in

好久没用fyne突然报错 报错import ...go-gl.. build constraints exclude all Go files in go-gl .. 检查gcc --version正常输出 检查gcc版本正常&#xff0c;路径正常。 尝试解决的方法&#xff0c; 1.重新安装依赖&#xff0c;不行 2.重新配置下载地址&#xff0c;不…

MongoDB应用:forEach方法实际应用

项目场景 今日的工作中有个需求是按照条件修改MongoDB集合中某个字段的值。之前都是用kettle或者代码处理&#xff1b;但是对于短频、偶尔的修改&#xff0c;上述方式实在是浪费时间。所以研究了下如何通过写MongoDB的 shell去实现。 代码呈现 在做语法说明之前&#xff0c…