首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >排序多维数组:如果列包含子字符串,则优先排序,然后按第二列排序

排序多维数组:如果列包含子字符串,则优先排序,然后按第二列排序
EN

Stack Overflow用户
提问于 2010-01-14 02:37:23
回答 2查看 5.2K关注 0票数 5

我目前正在创建一个由来自mysql查询的值组成的排序方法。

下面是该数组的简要视图:

代码语言:javascript
运行
复制
    Array
    (
        [0] => Array
            (
                ['id'] = 1;
                ['countries'] = 'EN,CH,SP';
            )
        [1] => Array
            (
                ['id'] = 2;
                ['countries'] = 'GE,SP,SV';
            )
    )

我已经成功地实现了一个基于数字id值的普通usort,但我更希望根据"countries“字段的内容(如果它包含一个集合字符串,在本例中是一个国家代码),然后按id字段对数组进行排序。

下面的代码片段是我关于如何做的第一个想法,但我不知道如何将它合并到一个工作函数中:

代码语言:javascript
运行
复制
in_array('EN', explode(",",$a['countries']) );

你会怎么做?

谢谢!

不幸的是,我真的一无所获。

这就是我目前所拥有的,它给我的只是错误:uasort() [function.uasort]: Invalid comparison function

代码语言:javascript
运行
复制
function compare($a, $b) {
    global $usercountry;

        if ( in_array($usercountry, $a['countries']) && in_array($usercountry, $a['countries']) ) {
            $return = 0;
        }

        else if (in_array($usercountry, $a['countries'])) {
            $return = 1;
        }

        else {
            $return = -1;
        }

        return $return;


        }

        $array= usort($array, "compare");

有没有人可以给我一些提示,告诉我如何继续下去?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2059255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档