遇到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;

}

相关推荐
写代码的二次猿5 分钟前
安装openfold(顺利解决版)
开发语言·python·深度学习
一只大袋鼠7 分钟前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
※DX3906※1 小时前
Java排序算法--全面详解面试中涉及的排序
java·开发语言·数据结构·面试·排序算法
笨笨马甲2 小时前
Qt QSS使用指南
开发语言·qt
We་ct3 小时前
LeetCode 77. 组合:DFS回溯+剪枝,高效求解组合问题
开发语言·前端·算法·leetcode·typescript·深度优先·剪枝
格林威3 小时前
工业相机图像高速存储(C#版):内存映射文件方法,附Basler相机C#实战代码!
开发语言·人工智能·数码相机·c#·机器视觉·工业相机·堡盟相机
Nuopiane3 小时前
MyPal3(3)
java·开发语言
lihihi3 小时前
P1650 [ICPC 2004 Shanghai R] 田忌赛马(同洛谷2587)
开发语言·算法·r语言
阿蒙Amon3 小时前
C#常用类库-详解Autofac
开发语言·c#
爱上妖精的尾巴3 小时前
8-18 WPS JS宏 正则表达式-边界匹配
开发语言·javascript·正则表达式·wps·jsa