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;   
}

七、二维数组去重

思路:先遍历二维数组中的每个子数组,并转换成字符串,保存到新数组中,再对新数组去重,得到去重后的二维数组

function unique_arr($array)
{

    $temp = array();
    foreach ($array as $key => $value) {
        $temp[$key] = implode(',', $value);
    }
    $temp = array_unique($temp);
    $result = array();
    foreach ($temp as $key => $value) {
        $result[$key] = explode(',',$value);
    }
    return $result;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下页、再停留

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值