php 一维数组排序,保留key值
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值
PHP合并数组,键值不变 尝试了好几个合并数组的函数, 但是都是把key值重置, 导致key值丢失(因为key值是要用到的) 大大说, 最好用数组的相关函数, 网上随意找了下, 还是没找到. 因为 ...
- Map去重,去重value相同的元素,保留key最小的那个值
Map<Integer,String>,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 ...
随机推荐
- 导出DC列表
$DomainName = (gwmi win32_computersystem).Domain$dn0 = $DomainName.Split(".")[0]$dn1 = $Do ...
- How to Use Custom TTF Font on iOS
Cocos2d-x uses FontLabel to draw customer ttf font before v2.0.3(including v2.0.3). Now it uses UIFo ...
- Pull Requests
Contribution Guide Issue Tracker You can find outstanding issues on the GitHub Issue Tracker. Pull R ...
- iOS 8创建交互式通知
iOS 8提供了一个令人兴奋的新API来创建交互式通知(interactive notifications),它能让你在你的应用之外为用户提供额外的功能.我发现网上还没有关于如何实现它的比较好的示例教 ...
- Android之HTTP网络通信--GET传递
说明 在做一个项目的时候难免会与服务器打交道,这里我就做一个小的Demo来简单的说明一下HTTP的使用,我这里使用的是图灵的接口,你也可以登陆www.tuling123.com进行申请.我使用的是上面 ...
- ios知识点
在controller中加载plist数据 1,设置属性NSArray 或可变数组NSMutableArray @property(nonatomic,strong)NSArray *message; ...
- sysctl
/proc/sys目录下存放着大多数内核参数,并且可以在系统运行时进行更改,不过重新启动机器就会失效./etc/sysctl.conf是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/ ...
- PHP之ThinkPHP数据操作CURD
两个数据表 具体操作如下: /**********************数据库操作********************/ ////////添加数据////////// ...
- 解决闪光灯代码在Nexus5上面打不开的问题
参考:http://blog.csdn.net/cy524563/article/details/41545387 关键在于: int textureId = 0;whyCamera.setPrevi ...
- HTML5规范的本地存储
在HTML5 中定义了两种本地存储的,Web Storage 和本地数据库 SQL Database . 用来检查判断浏览器是否支持 Web Storage if(window.localStorag ...