博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二维数组排序,指定一维数组为条件
阅读量:5809 次
发布时间:2019-06-18

本文共 2043 字,大约阅读时间需要 6 分钟。

'哈哈', 'sex' => '男' ], [ 'name' => '李四', 'sex' => '男' ], [ 'name' => '王五', 'sex' => '男' ], [ 'name' => '张三1', 'sex' => '男' ], [ 'name' => '李四', 'sex' => '女' ], ]; /* * $dataArr array 要排序数组 * $whereArr array 排序的条件 * $key string 要排序数组的排序条件字段 * return array */ function SortAry($dataArr = [], $whereArr = [], $key = ''){
$returnArr = []; if(empty($dataArr) || empty($whereArr) || empty($key) ) {
$returnArr['error'] = '参数必须'; return $returnArr; } if(!is_array($dataArr)) {
$returnArr['error'] = '第一个参数 $dataArr必须是数组'; return $returnArr; } if(!is_array($whereArr)) {
$returnArr['error'] = '第二个参数 $whereArr必须是数组'; return $returnArr; } if(!is_string($key)) {
$returnArr['error'] = '第三个参数 $key必须是字符串'; return $returnArr; } $newArr = []; $newReArr = []; foreach($dataArr as $dKey => $dVal){
//不是二维跳过 if(!is_array($dVal)) {
$newReArr[] = $dVal; continue; } //判断条件字段是否设置 if(!isset($dVal[$key])) {
$newReArr[] = $dVal; continue; } //不在排序条件中 if(!in_array($dVal[$key], $whereArr)) {
$newReArr[] = $dVal; continue; } $newArr[$dVal[$key]][] = $dVal; } if($newArr) {
foreach($whereArr as $wKey => $wVal){
//判断条件字段是否设置 if(isset($newArr[$wVal])){
foreach($newArr[$wVal] as $nKey => $nVal){
$returnArr[] = $nVal; } } } } $returnArr = array_merge($returnArr, $newReArr); return $returnArr; } $reData = SortAry($dataArr, $whereArr, '-1'); if(isset($reData['error'])) {
echo $reData['error']; } else {
var_dump($reData); }

转载于:https://www.cnblogs.com/shuaiqun/p/8834314.html

你可能感兴趣的文章
解决Unable to load R3 module ...VBoxDD.dll (VBoxDD):GetLastError=1790
查看>>
.net excel利用NPOI导入oracle
查看>>
vrpie在Visio Studio 中无法调试的问题
查看>>
第六课:数据库的基本工具
查看>>
关于二叉树重构的思索
查看>>
$_SERVER['SCRIPT_FLENAME']与__FILE__
查看>>
skynet实践(8)-接入websocket
查看>>
系统版本判断
查看>>
关于Css选择器优先级
查看>>
My97DatePicker 日历插件
查看>>
0603 学术诚信与职业道德
查看>>
小点心家族第3位成员——楼层定位效果
查看>>
Knockout.Js官网学习(enable绑定、disable绑定)
查看>>
hive基本操作与应用
查看>>
excel快捷键设置
查看>>
poj3692
查看>>
python之信号量【Semaphore】
查看>>
html5纲要,细谈HTML 5新增的元素
查看>>
Android应用集成支付宝接口的简化
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>