关联数组怎么排序

wubai250 2005-12-27 12:57:53
关联数组怎么排序

Array
(
[baidu.com] => 3296,
[yahoo.com.cn] => 89,
[3721.com] => 146,
[所有] => 3531
)

排完序之后变成

Array
(
[所有] => 3531,
[baidu.com] => 3296,
[3721.com] => 146,
[yahoo.com.cn] => 89
)

...全文
189 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wubai250 2005-12-29
  • 打赏
  • 举报
回复
非常感谢大家,谢谢
leihome 2005-12-27
  • 打赏
  • 举报
回复
我说哥哥,问问题也得拿个适于调试的数组吧:@!#$%^&*()_+
leihome 2005-12-27
  • 打赏
  • 举报
回复
<?php
$a =array
(
'0' => Array
(
'keyword' => 11111,
'count' => 2,
'accessUrl' => Array
(
'0' => 'http://www.baidu.com/',
'1' => 'http://www.yahoo.com.cn/',
),

),
'1' => Array
(
'keyword' => 222222,
'count' => 1,
'accessUrl' => Array
(
'0' => 'http://seek.3721.com/',
),

),

'3' => Array
(
'keyword' => 333333,
'count' => 30,
'accessUrl' => Array
(
'0' => 'http://www.baidu.com/',
),

),
);



uasort($a, "mycmp_desc");
print_r($a);

function mycmp_desc($a, $b) {
$leihome = '{}["count"]';
eval('$va = ' . str_replace('{}', '$a', $leihome) . ';');
eval('$vb = ' . str_replace('{}', '$b', $leihome) . ';');
if ($aa == $bb) return 0;
else return ($aa > $bb ? -1 : 1);
}

?>
xuzuning 2005-12-27
  • 打赏
  • 举报
回复
“刚才的是抛砖引玉”
哈哈,有点自做聪明了。这根本是两回事!

$ar = array (
0 =>
array (
'keyword' => '亚运村论坛',
'count' => 2,
'accessUrl' =>
array (
0 => 'http://www.baidu.com/',
1 => 'http://www.yahoo.com.cn/',
),
),
1 =>
array (
'keyword' => '核二院',
'count' => 1,
'accessUrl' =>
array (
0 => 'http://seek.3721.com/',
),
),
2 =>
array (
'keyword' => '北京清河',
'count' => 30,
'accessUrl' =>
array (
0 => 'http://www.baidu.com/',
),
),
);

foreach($ar as $v)
$t[] = $v['count'];
array_multisort($t, SORT_DESC, $ar);


function foo($a, $b) {
if($a['count'] == $b['count']) return 0;
return $a['count'] < $b['count'] ? 1 : -1;
}
uasort($ar, foo);
var_export($ar);


*********
请用var_export的结果示例你的数组,以免别人花费很多时间格式化你的数组
wubai250 2005-12-27
  • 打赏
  • 举报
回复
U
wubai250 2005-12-27
  • 打赏
  • 举报
回复
还有一个问题,刚才的是抛砖引玉
怎么按count排序

Array
(
[0] => Array
(
[keyword] => 亚运村论坛
[count] => 2
[accessUrl] => Array
(
[0] => http://www.baidu.com/
[1] => http://www.yahoo.com.cn/
)

)
[1] => Array
(
[keyword] => 核二院
[count] => 1
[accessUrl] => Array
(
[0] => http://seek.3721.com/
)

)

[3] => Array
(
[keyword] => 北京清河
[count] => 30
[accessUrl] => Array
(
[0] => http://www.baidu.com/
)

)
)

排完之后变成

Array
(

[0] => Array
(
[keyword] => 北京清河
[count] => 30
[accessUrl] => Array
(
[0] => http://www.baidu.com/
)

)
[1] => Array
(
[keyword] => 亚运村论坛
[count] => 2
[accessUrl] => Array
(
[0] => http://www.baidu.com/
[1] => http://www.yahoo.com.cn/
)

)
[2] => Array
(
[keyword] => 核二院
[count] => 1
[accessUrl] => Array
(
[0] => http://seek.3721.com/
)

)


)
duzq 2005-12-27
  • 打赏
  • 举报
回复
<?php
function abc()
{
if($a==$b) return 0;
if($a>$b)
return
}
$aas = array(
'baidu.com' => 3296,
'yahoo.com.cn' => 89,
'3721.com' => 146,
'所有' => 3531,
);
arsort($aas, abs);
foreach($aas as $aa)
{
print_r($a);
}
?>
leihome 2005-12-27
  • 打赏
  • 举报
回复
<?php
$a = array(
'baidu.com' => 3296,
'yahoo.com.cn' => 89,
'3721.com' => 146,
'所有' => 3531,
);
arsort($a);
print_r($a);
?>
johnpanq 2005-12-27
  • 打赏
  • 举报
回复
arsort -- 对数组进行逆向排序并保持索引关系
asort -- 对数组进行排序并保持索引关系
leihome 2005-12-27
  • 打赏
  • 举报
回复
最近确定一下是
arsort($array)

呵呵~~~~~~
leihome 2005-12-27
  • 打赏
  • 举报
回复
是rsoft(Array)
leihome 2005-12-27
  • 打赏
  • 举报
回复
usort(Array)

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧