社区
基础编程
帖子详情
PHP数组排序问题
luits
2008-09-20 10:04:53
PHP数组排序问题
$array=array('orange'=>84, 'blue'=>30, 'banana'=>99);
请问题如何给这个数组分别对数组名和数组值进行排序?请写出你自己的算法而不是使用PHP函数自带的排序函数。
不用自带函数估计大家觉得有点没事找茬,但别人的要求就是这样!
...全文
241
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
根据一个
数组
对另外一个
数组
进行
排序
问题
现在需要根据keyArr
数组
给valueArr
数组
进行
排序
: $keyArr = [100,200,300]; $valueArr = [ '200' => 'ni', '100' => 'hao', '300' => 'aaa' ]; 从网上查到的一个方法是利用array_merge函数相同key后者会覆盖前者特性,进行如下...
php
按汉字拼音
排序
,
PHP
数组
排序
关于按中文拼音
排序
的
问题
这天做个页面,需要将图片表里面图片的标签拉出来拆分好后去重按自然
排序
。结果很囧,应该
排序
的结果是0-9-A-z-阿-中,但是中文部分就是很乱。再找
问题
,结果发现自然
排序
是按照字符编码的顺序来排列。由于当前页面是UTF-8编码,UTF-8大家应该清楚吧,我称为是“电脑码”,给电脑看的~汗…… 如果换成GBK或者GB2312编码就不会这样了,这跟汉字在字符集的编码有关。比如”人”这个字,在GBK和GB...
php
按时间
排序
代码,在
php
中按时间
排序
数组
的
问题
—
数组
$积分—-Array([0] => Array([0] => 2011-10-02 05:30:00[1] => 20)[1] => Array([0] => 2011-10-04 09:30:00[1] => 12)[2] => Array([0] => 2011-10-01 13:30:00[1] => 25)[3] => Ar...
php
数组
的
排序
问题
php
数组
的
排序
问题
函数sort 对
数组
单元进行升序
排序
,将删除
数组
的原有键名,赋予新的键名rsort 对
数组
单元进行降序
排序
,将删除
数组
的原有键名,赋予新的键名
asort 对
数组
进行升序
排序
,保持关联关系arsort 对
数组
进行降序
排序
,保持关联关系
ksort 对
数组
按照键值升序
排序
,保留键名到数据的关联krsort 对
数组
按照键值降序
排序
,保留键名到数据的关联uasort 使用用户自定义的比较函数对
数组
中的值进行
排序
并保持索引关联
$array=array(
PHP
数组
排序
二维或多维
排序
问题
交代下背景,之前公司测试提出来的bug,手机端提交的答案后 题号顺序乱了,两个解决办法;(个人学习保留,有不对的地方请指正) 1、在sql中存入的时候进行
排序
,因为我没权限管理数据库,存入数据的是Java写接口,没有涉及到,所以就不多说了。 2、现在用的在网页端程序中对数据进行新的
排序
。 --1、因为本人对
数组
不熟悉,试过sort、asort,这些根据
数组
的key进行
排序
,这些没
基础编程
21,889
社区成员
140,329
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章