资讯专栏INFORMATION COLUMN

php二维数组指定其键名对其排序的方法

laoLiueizo / 2902人阅读

安利个小李子先
"red",
    "5"=>"green",
    "name"=>"tom"
];

$other=[
"5"=>"new red",
"name"=>"jessy"

];
$new_a=array_merge($arr,$other);
$new_b=array_merge_recursive($other,$arr);
var_dump($new);

array_merge是将两个数组合并为一个数组,如果两个数组中有相同键名,那么后面的会覆盖前面的
array_merge_recursive 也是合并两个相同数组,如果两个数组中有相同键名,
那么根本不会进行键名覆盖,而是将多个相同键名的值组成一个新数组.

大李子

要求:
此二维数组返回内容不定,
但需要保证展示顺序为直播>航拍>视频这样的排序。
有就必须按照这个优先级,没有就算...

// id 没有任何卵用,再次只是凑数标识
$arr=[
    ["id"=>1,"name"=>"位置图"],
    ["id"=>2,"name"=>"效果图"],
    ["id"=>3,"name"=>"实景"],
    ["id"=>4,"name"=>"样板间"],
    ["id"=>5,"name"=>"视频"],
    ["id"=>6,"name"=>"户型"],
    ["id"=>7,"name"=>"其他"],
    ["id"=>8,"name"=>"航拍"],
    ["id"=>9,"name"=>"交通"],
    ["id"=>10,"name"=>"直播"],
    ["id"=>11,"name"=>"规划"],
];
处理阶段
$num=3;//涉及三个优先级排序,这里定为3
foreach ($arr as $key => &$val) {
    $val["sort_num"]="";
    if($val["name"]=="直播"){
        $val["sort_num"]="1";
    }elseif ($val["name"]=="航拍"){
        $val["sort_num"]="2";
    }elseif ($val["name"]=="视频") {
       $val["sort_num"]="3";
    }else{
         $val["sort_num"]=++$num;
    }
}
unset($val);


$newArr = [];
$result = [];
foreach ($arr as &$item) {
    $newArr[$item["sort_num"]][] = $item;
}


----------


ksort($newArr);

foreach($newArr as &$newItem) {

    if(is_array($newItem)) {
        $result = array_merge($result, $newItem);
    }else {
        //array_push($newItem);
    }

}
unset($newItem);

此时$result为最终想要的结果,如果有需要可以封装下。
如果有更好的处理办法,请各位大神指点下~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21796.html

相关文章

  • 数组排序函数-php数组函数(一)

    摘要:下列的所有排序函数都是直接作用于数组本身,而不是返回一个新的有序的数组。倒序并保持索引关系,按键名排序按键名倒序使用用户自定义的比较函数对数组中的值进行排序,要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。 数组排序,共13个 函数中有u的,能自定义比较函数;有k的,按照键来排序;有r(reverse)的,倒序;有a(association)的,一定是键值关联,除了r...

    call_me_R 评论0 收藏0
  • PHP 学习总结之数组

    摘要:概述我们知道,在编程语言中,数组的使用频率是很高的,几乎每个脚本都会使用到。循环缺点遍历完成之后,不能对数组进行第二次遍历数组内部指针指向了最后一个元素。 概述 我们知道,在 PHP 编程语言中,数组的使用频率是很高的,几乎每个脚本都会使用到。 PHP 自带了大量的、优秀的操作数组的函数以供我们使用,本文就对这些数组函数的使用做一些分类和总结,方便大家以后查阅。 创建 1. range...

    wangdai 评论0 收藏0
  • PHP常用函数之数组处理

    摘要:数组转化字符串将一个一维数组的值转化为字符串如果有,用将一维数组的值连接为一个字符串对数组进行编码,返回格式字符串数组统计获取数组元素长度统计数组中所有值出现的次数数组格式化移除数组中重复的值并非键交换数组中的键和值重新索引,如果是关联数组 数组转化字符串 implode (string $glue,array $pieces) / implode ( array $pieces )...

    isLishude 评论0 收藏0
  • Licia 支持小程序 JS 工具库

    摘要:注模块名右边有小程序图标即表明可以在小程序中使用。转义字符串为合法的字符串字面量。转义特殊字符用于构造函数。使构造函数继承另一个构造函数原型链上的方法。 导语 Licia 是一套在开发中实践积累起来的实用 JavaScript 工具库。该库目前拥有超过 300 个模块,同时支持浏览器、node 及小程序运行环境,提供了包括日期格式化、md5、颜色转换等实用模块,可以极大地提高开发效率。...

    DangoSky 评论0 收藏0
  • PHP8 种原始数据类型【基础】

    摘要:如果给定的一个数超出了的范围,将会被解释为。从布尔值转换将产生出零,将产生出壹。由于内部表达方式的原因,比较两个浮点数是否相等是有问题的。和在小数点后五位精度内都是相等的。这里共有两种语法规则一种简单规则,一种复杂规则。 前言 搬运:PHP官方文档 四种标量类型 boolean(布尔型) 这是最简单的类型。boolean表达了真值,可以为TRUE或FLASE。要指定一个布尔值,使用关...

    whataa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<