首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >usort -更多参数

usort -更多参数
EN

Stack Overflow用户
提问于 2010-03-19 03:35:16
回答 1查看 1.5K关注 0票数 2

Hallo,我怎样才能给usort传递更多的参数?我有不同的函数,它们在结构上非常相似,我只想有一个函数:

代码语言:javascript
复制
<?php

     $arr = array(      array('number' => 100, 'string'=>'aaa'),
                array('number'=>50, 'string'=>'bdef'),
                array('number'=>150, 'string'=>'cbba')
            );


    usort($arr,  'sortNumberDesc');

    //How can I use just a single function?
    //How can I pass further parameters to usort?

    function sortNumberDesc($a, $b){
       $a = $a['number'];
       $b = $b['number'];
       if ($a == $b) return 0;
       return ($a > $b) ? -1 : +1;
    }

    function sortNumberAsc($a, $b){
       $a = $a['number'];
       $b = $b['number'];  
       if ($a == $b) return 0;
       return ($a < $b) ? -1 : +1;
    }

    //I want to do the same with just one function:
    //Sort ID is the search index, reverse DESC or ASC 
    function sort($a, $b, $sortId='number', $reverse = 0){
       $a = $a[$sortId];
       $b = $b[$sortId]; 
       if ($a == $b) return 0;
       if($reverse == false) return ($a > $b) ? -1 : +1;
       else return ($a < $b) ? -1 : +1;
    }

    print_r($arr);
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-19 03:36:20

您可以使用一个简单得多的函数:

代码语言:javascript
复制
function sortNumberAsc($a, $ b){
       $a = $a['number'];
       $b = $ b['number'];  
       if ($a == $b) return 0;
       return ($a < $b) ? -1 : +1;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2472809

复制
相关文章

相似问题

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