php数组排序后保留键名,PHP 数组排序后,仍保留对应的字符串键名
原创。
要求:对一个具有字符串键名数组 $arr 实施排序后,仍保留对应的字符串键名。
解决办法:
1. 创建一个 $arr 的备份数组 $a.
2. 对原始数组 $arr 实施排序。
3. 创建一个数组 $b, 其键值为原始数组的键名,且其元素 (键值) 顺序,与排好序的数组一致。
4. 调用 array_combine($b, $arr) 方法,通过合并两个数组 来创建一个新数组,其中第一个数组元素为键名,第二个数组元素为键值。以此, 找回丢失了的字符串键名.
1.[代码][PHP]代码
//一个字符串键名(下标)的数组
$fruits=array("柠檬"=>"lemon","橘子"=>"orange","香蕉"=>"banana",
"苹果"=>"apple","蓝莓"=>"blueberry","草莓"=>"strawberry",
"芒果"=>"mango","榴莲"=>"durian","西瓜"=>"watermelon",
"鸭梨"=>"pear","葡萄"=>"grape");
foreach ($fruits as $key => $val) //输出原始数组 $fruits
echo "fruits[".$key."] = ".$val."
";
echo "
";
// 调用 sort_with_keyName()方法, 获得 排好序的数组
$fruits_sorted = sort_with_keyName( $fruits);
//输出最终结果。
foreach($fruits_sorted as $key=>$val)
echo "fruites sorted[".$key."] = ".$val."
";
/* 定义一个对数组 $arr 实施排序,
* 同时保留对应的字符串键名 (下标) 的排序方法
*/
function sort_with_keyName( $arr) {
//在内存的另一处 $a 复制内容与 $arr 一样的数组
foreach($arr as $key => $value)
$a[$key]=$value;
sort($arr); //对数组 $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);
};
?>
2.[图片] Array_With_String_Keys.png
php数组排序后保留键名,PHP 数组排序后,仍保留对应的字符串键名相关推荐
- php 覆盖相同键的值,php - PHP数组使用相同的字符串键组合值 - SO中文参考 - www.soinside.com...
我有以下常见问题,但无法确定哪种数组函数可能适用于以下格式: ((已尝试array_merge,array_merge_recursive,array_combine,array_splice,但未按 ...
- php数组只保留键值,php合并数组并保留键值的实现方法
php合并数组,一般会使用array_merge方法. array_merge - 合并一个或多个数组 array array_merge ( array $array1 [, array $... ...
- php中合并数组保留键值,php合并数组并保留键值的实现方法
下面为大家分享一篇php合并数组并保留键值的实现方法,具有很好的参考价值,希望对大家有所帮助. php合并数组,一般会使用array_merge方法. array_merge - 合并一个或多个数组 ...
- php数组键值一样的合并,php合并数组并保留键值 php合并数组并保留键值的实现方法...
想了解php合并数组并保留键值的实现方法的相关内容吗,傲雪星枫在本文为您仔细讲解php合并数组并保留键值的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:php数组合并保留键值,下面大家一起 ...
- MybatisPlus:SQL语句打印、SQL分析、自定义主键值策略填充(IdType.INPUT)、动态表名、多租户、枚举、类型处理器、连表自定义SQL(使用wrapper)
文章目录 1. 简单使用以及配置 - 带分页配置 2. 用法 2.0 Wrapper属性 2.1 @TableId - 自定义主键生成策略 2.2 @TableField - 自定义字段值填充 2.3 ...
- SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决
SQL Server2019 数据库查询所有数据库名.表名.表结构.表字段.主键方法演示 第一章:查询方法 ① 查询所有数据库名 ② 查询所有表名方法 ③ 查询表结构.表字段方法 ④ 查询主键方法 第 ...
- php 两个数组键名比较,php array_intersect_assoc 比较两个数组的键名和键值,并返回交集...
先来看一下array_intersect_assoc函数的语法 array array_intersect_assoc ( array $array1 , array $array2 [, array ...
- mybatis 主键自增 insert后返回主键
mybatis 主键自增 insert后返回主键 : <insert id="insertStudentAutoKey" parameterType="Studen ...
- Sql Server获取数据库名,表信息,字段信息,主键信息等
--Sql Server获取数据库名,表信息,字段信息,主键信息等--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ...
最新文章
- Python3中装饰器@typing.overload的使用
- VmWare 与 宿主主机通信 STEP BY STEP (适用于刚開始学习的人)
- 中文分词工具jieba分词器的使用
- 加码 2000 亿还不够,阿里云再建三座超级数据中心加速新基建
- 收藏 | Redis 使用 10 个小技巧
- SpringBoot 学习 | raibaby Halo v0.4.3 漏洞分析-Ali0th
- pytorch模型的保存与加载
- Oracle 服务器 进程中的 LOCAL=NO 和 LOCAL=YES
- linux网络编程--阻塞与非阻塞
- 巧用ActionFilterAttribute实现API日志的记录
- python编程高手教程_写给编程高手的Python教程(01) 数据结构
- extjs_04_grid(弹出窗口amp;行编辑器 CRUD数据)
- 特征码的使用办法_小脚的美丽与哀愁,34/35码的她们都是怎么买鞋的?
- 执行下面程序段后,y的结果是____。int x,y;x=y=2;x=x-2(y=y+1);printf(“%d“,y);A。3 B.2 C.1 D。0
- Atitit 基于图片图像 与文档混合文件夹的分类
- Dev-C++每次启动都提示路径库不存在
- OGRE 引擎官方基础教程 (一)
- 关于腾讯云服务器使用FTP详细配置教程
- oracle1参数化,carol2000的LR学习笔记(1)Oracle excel 数据参数化
- 产业集群理论及其生态学特性