php用一维数组储存信息,php 一维数组排序,保留key值

这篇博客探讨了如何在PHP中对数组进行排序,同时保持原有的键值关联。文章介绍了`sort_with_keyName`函数,它可以按升序或降序对数组排序,并在排序后保留原来的键名。此外,还提到了另一种方法`sort_with_keyName2`,通过遍历和比较来实现键值对的排序和保留。这两个方法对于需要在操作数组时保持键值对应关系的场景非常有用。
摘要由CSDN通过智能技术生成

function sort_with_keyName($arr,$orderby='desc'){

//在内存的另一处 $a 复制内容与 $arr 一样的数组

foreach($arr as $key => $value)

$a[$key]=$value;

if($orderby== 'asc'){//对数组 $arr 进行排序

asort($arr);

}else{

arsort($arr);

}

/*创建一个以原始数组的键名为元素值 (键值) 的

*数组 $b, 其元素 (键值) 顺序,与排好序的数组 $arr 一致。

*/

$index=0;

foreach ($arr as $keys => $values) //按排序后数组的顺序

foreach($a as $key => $value) //在备份数组中寻找键值

if ($values==$value)//如果找到键值

$b[$index++]=$key; // 则将数组 $b 的元素值,设置成备份数组 $a 的键名

//返回用数组 $b 的键值作为键名,数组 $arr 的键值作为键值,所组成的数组

return array_combine($b, $arr);

}

$arr = array('AA'=>3,'AB'=>1,'AC'=>2);

排序 123 保留 AA,AB,AC

private function sort_with_keyName($arr,$orderby='desc'){

$new_array = array();

$new_sort = array();

foreach($arr as $key => $value){

$new_array[] = $value;

}

if($orderby=='asc'){

asort($new_array);

}else{

arsort($new_array);

}

foreach($new_array as $k => $v){

foreach($arr as $key => $value){

if($v==$value){

$new_sort[$key] = $value;

unset($arr[$key]);

break;

}

}

}

return $new_sort;

}

PHP合并数组保留key值

PHP合并数组,键值不变   尝试了好几个合并数组的函数, 但是都是把key值重置, 导致key值丢失(因为key值是要用到的) 大大说, 最好用数组的相关函数, 网上随意找了下, 还是没找到. 因为 ...

Map去重,去重value相同的元素,保留key最小的那个值

Map,Integer代表时间撮,String代表文本信息去重函数:就是删除Map中value相同的元素,只保留key最小的那个元素 public stat ...

SQLSERVER:大容量导入数据时保留标识值 (SQL Server)

从MSDN上看到实现大容量导入数据时保留标识值得方法包含三种: MSDN链接地址为:https://msdn.microsoft.com/zh-cn/library/ms178129.aspx 感觉M ...

php合并数组并保留键值的方法

答案:使用 + 连接两个数组,替换array_merge()函数. php合并数组,一般会使用array_merge方法. array_merge — 合并一个或多个数组 array array_me ...

js json按key值排序

最近有个需求需要把json按key值进行排序,可是js并没有直接的函数可以对json进行排序的这么办呢? 然后想到了一个间接的方法来实现: 1.将json中的key值取出,存在一个数组中,然后对这个数 ...

Map 转 json格式 保留null值的解决办法

Map 转 json格式 保留null值的解决办法 开发中遇到将map数据转json格式,然后map中含null值的键值对都被转没了,所以记录一下,以下是解决方法 使用fastJson进行转换 imp ...

Python解析非标准JSON(Key值非字符串)

采集数据的时候经常碰到一些JSON数据的Key值不是字符串,这些数据在JavaScript的上下文中是可以解析的,但在Python中,没有该部分数据的上下文,无法采用json.loads(JSON)的 ...

Activiti 删除key值相同的所有不同版本的流程定义

package com.mycom.processDefinition; import java.io.File; import java.io.IOException; import java.io ...

Js中获取对象的所有key值

假如现在有一个对象 var obj = { A:2 ,B:"Ray" ,C:true ,D:function(){} } 如果想遍历对象obj中的所有键值,一般是用以下方式 for ...

随机推荐

poj 2299 Ultra-QuickSort(求逆序对)

Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 52778   Accepted: 19348 ...

严重: Exception starting filter struts2 java.lang.NullPointerException (转载)

严重: Exception starting filter struts2 java.lang.NullPointerException at com.opensymphony.xwork2.util ...

ASP.NET Core MVC – 自定义 Tag Helpers

ASP.NET Core Tag Helpers系列目录,共四篇: ASP.NET Core MVC Tag Helpers 介绍 ASP.NET Core MVC – Caching Tag Hel ...

从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD

第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分 ...

17秋 软件工程 第六次作业 Beta冲刺 Scrum3

17秋 软件工程 第六次作业 Beta冲刺 Scrum3 各个成员冲刺期间完成的任务 世强:完成手势签到模块,重构活动详情页面: 陈翔:完善超级管理员后端login模块,完成logout模块: 树民: ...

BZOJ4196[Noi2015]软件包管理器——树链剖分+线段树

题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个 ...

PAT 1001. A+B Format 解题

GitHub PDF 1001. A+B Format (20) Calculate a + b and output the sum in standard format -- that is, t ...

HE算法与Scaler算法

HE算法:图像直方图均衡化 Scaler算法:图像缩放 基于matab的scaler实现_图文_百度文库 https://wenku.baidu.com/view/016f5e4002768e9951 ...

fd与FILE结构体

文件描述符 fd 概念:文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表.当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件 ...

TCP/IP——ARP与RARP简记

ARP(Address Resolution Protocol):ARP为IP地址到对应的硬件地址(MAC)之间提供动态映射.这个过程是自动完成的,一般应用程序用户和系统管理员不必要关心. ARP高速 ...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值