社区
基础编程
帖子详情
PHP数组排序问题
luits
2008-09-20 10:04:53
PHP数组排序问题
$array=array('orange'=>84, 'blue'=>30, 'banana'=>99);
请问题如何给这个数组分别对数组名和数组值进行排序?请写出你自己的算法而不是使用PHP函数自带的排序函数。
不用自带函数估计大家觉得有点没事找茬,但别人的要求就是这样!
...全文
233
6
打赏
收藏
PHP数组排序问题
PHP数组排序问题 $array=array('orange'=>84, 'blue'=>30, 'banana'=>99); 请问题如何给这个数组分别对数组名和数组值进行排序?请写出你自己的算法而不是使用PHP函数自带的排序函数。 不用自带函数估计大家觉得有点没事找茬,但别人的要求就是这样!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luits
2008-09-20
打赏
举报
回复
[Quote=引用 4 楼 yunfeifan 的回复:]
if($keys[$j] > $keys[$j + 1]){
$tmp = $keys[$j];
$keys[$j] = $keys[$j + 1];
$keys[$j + 1] = $tmp;
}
}
[/Quote]
这样也可以比较字符的大小!好办法!
[Quote=引用 4 楼 yunfeifan 的回复:]
foreach($keys as $k => $v){
$result[$v] = $array[$v];
}
[/Quote]
嗯这个办法帮我很大的忙,代码也是满精减的了,谢谢yunfeifan兄
yunfeifan
2008-09-20
打赏
举报
回复
字符串也可以比较,开始把键名放到另外一个数组中做value,然后进行比较,也是一样的
<?php
$array = array("yellow"=>1, "green"=>2, "blue"=>3, "white"=>4, "grey"=>5);
$keys = array();
foreach($array as $key => $value){
$keys[] = $key;
}
for($i = count($array) - 1; $i > 0; $i--){
for($j = 0 ;$j < $i; $j ++){
if($keys[$j] > $keys[$j + 1]){
$tmp = $keys[$j];
$keys[$j] = $keys[$j + 1];
$keys[$j + 1] = $tmp;
}
}
}
foreach($keys as $k => $v){
$result[$v] = $array[$v];
}
print_r($result);
?>
这个应该不是最优化的,大家还有什么好的办法
macleane
2008-09-20
打赏
举报
回复
先判断是不是数字,如果不是就用strcmp比较
luits
2008-09-20
打赏
举报
回复
冒泡排序法 这个想法是不错。你这个办法可以处理到数组的值如84 30 99,但是这里还有个键值要处理。如array('orange'=>90),这里键值并非数值,不能是简单的数字循环来排序。如何处理这个东西??
fxs_2008
2008-09-20
打赏
举报
回复
网上查查冒泡排序法写一个吧
对数据值排序好排
但那键名排序涉字母排序,麻烦一点
yunfeifan
2008-09-20
打赏
举报
回复
array_keys 可以返回数组的键名
php
根据一个
数组
对另外一个
数组
进行
排序
问题
本文介绍了一种使用
PHP
的array_replace方法对
数组
进行
排序
的技巧,解决了根据特定键值对
数组
进行
排序
的
问题
,避免了循环操作,提高了代码效率。
php
按汉字拼音
排序
,
PHP
数组
排序
关于按中文拼音
排序
的
问题
在
PHP
中遇到一个
问题
,当需要对包含中文的
数组
进行自然
排序
时,发现中文部分
排序
混乱。原因是UTF-8编码下,中文字符
排序
遵循Unicode编码顺序,而非拼音顺序。解决方法是在
排序
前将字符转为GBK编码,
排序
后再转回UTF-8。通过iconv函数实现编码转换,并使用asort进行
排序
,确保了中文按照拼音顺序排列。
php
按时间
排序
代码,在
php
中按时间
排序
数组
的
问题
博客内容涉及
PHP
编程中对
数组
进行时间
排序
的
问题
。作者遇到一个二维
数组
,尝试使用`array_multisort`函数根据时间戳部分进行升序
排序
。在原始代码中,通过 `$time[$key] = $val[0]` 来存储时间戳,
排序
结果正确。但当改变为 `$time = $val[0]` 时,
排序
结果出现错误。这个
问题
涉及到
数组
引用与赋值的区别,影响了
排序
的正确性。
php
数组
的
排序
问题
本文介绍了
PHP
中常用的
数组
排序
函数,包括sort、rsort、asort等,并通过示例详细解释了如何使用uasort实现自定义
排序
逻辑。适用于希望深入理解
PHP
数组
操作的开发者。
PHP
数组
排序
二维或多维
排序
问题
本文介绍了一种使用
PHP
的array_multisort函数解决
数组
排序
问题
的方法,特别针对嵌套
数组
按特定键值
排序
的需求,适用于纠正数据展示顺序错误等
问题
。
基础编程
21,889
社区成员
140,337
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章