当前位置: 首页 > news >正文

PHP 二维数组相关函数:二维数组指定key排序,二维数组转一维数组,两个二维数组取差集,对象转数组,判断元素是否在多维数组中

目录

一、二维数组转一维数组

二、对二维数组进行指定key排序

三、二维数组转一维数组

四、两个二维数组取差集

五、对象转数组

六、判断元素是否在多维数组中


PHP 二维数组相关函数:二维数组转一维数组,二维数组指定key排序,两个二维数组取差集,对象转数组,判断元素是否在多维数组中

一、二维数组转一维数组

function towarr_to_onearr($arr,$item)
{foreach ($arr as $key => $value) {$newArr[] = $value[$item];}return $newArr;
}

二、对二维数组进行指定key排序

/**
* @desc 对二维数组进行指定key排序
* @param $arr 二维数组
* @param $shortKey  需要排序的列
* @param $short  排序方式
* @param $shortType 排序类型
*/
function multi_array_sort($arr,$shortKey,$short=SORT_DESC,$shortType=SORT_REGULAR)
{foreach ($arr as $key => $data){$name[$key] = $data[$shortKey];}array_multisort($name,$shortType,$short,$arr);return $arr;
}

三、二维数组转一维数组

/**
* @param $arr 数组
* @param $item 指定的项  
*/
function towarr_to_onearr($arr,$item)
{foreach ($arr as $key => $value) {$newArr[] = $value[$item];}return $newArr;
}

四、两个二维数组取差集

/**
* @param $arr1 数组
* @param $arr2 数组
* @param $key 对比的值 唯一
*/
function get_diff_array($arr1,$arr2,$key)
{$res = array();foreach($arr1 as $v) {$tmp[$v[$key]] = $v;};foreach($arr2 as $v) {if(! isset($tmp[$v[$key]])) {if (!empty($v)) {$res[] = $v;}}};return $res;
}

五、对象转数组

/**
* @param $obj 对象
*/
function objToArray($obj)
{return json_decode(json_encode($obj), true);
}

六、判断元素是否在多维数组中

/***  判断元素是否在多维数组中* @param $str 需要判断的元素* @param $array 数组* @return bool*/
function deep_in_array($str, $array) {   foreach($array as $item) {   if(!is_array($item)) {   if ($item == $str) {  return true;  } else {  continue;}  }   if(in_array($str, $item)) {  return true;      } else if(deep_in_array($str, $item)) {  return true;      }  }   return false;   
}

http://www.lryc.cn/news/65235.html

相关文章:

  • 演出剧院门票售票预约小程序开发制作功能介绍
  • JUC之Java内置锁的核心原理
  • 【项目经理】论项目经理的自我修养
  • 知识图谱学习笔记03-知识图谱的作用
  • 刚进公司就负责项目,把老弟整蒙了!
  • 【Python基础入门学习】Python高级变量你了解多少?
  • 《LearnUE——基础指南:上篇—3》——GamePlay架构WorldContext,GameInstance,Engine之间的关系
  • 重大问题,Windows11出现重大BUG(开始菜单掉帧,卡顿)
  • 修改系统语言字体的方法及注意事项
  • 19.考虑柔性负荷的综合能源系统日前优化调度模型
  • Midjourney关键词分享!附输出AI绘画参考图
  • 网络安全行业就职岗位有哪些?
  • 数据库设计-范式
  • 在前端开发中,何时应该使用 jQuery,何时应该使用 Vue.js
  • Promise类方法
  • transformer and DETR
  • 数据结构(六)—— 二叉树(4)回溯
  • JVM基础知识(一)
  • ASP.NET Core Web API用户身份验证
  • 785. 快速排序
  • C6678学习-IPC
  • 利用 Delte-Sigma ADC简化电路设计
  • 如何在 Windows 11 启用 Hyper-V
  • 哈希表企业应用-DNA的字符串检测
  • Kafka运维与监控
  • 【Redis—哨兵机制】
  • MySQL学习笔记第七天
  • 中级软件设计师备考---程序设计语言和法律法规知识
  • Leetcode434. 字符串中的单词数
  • C++ cmake工程引入qt6和Quick 教程