2016-01-09 46 views
2

我基于笨工作的一个小项目的阵列,我不是一个PHP开发人员,这是我的问题:排序数组PHP

 foreach ($checkeds['id_iscritti'] as $checked){ 

     $iscritto = $this->pellegrinaggio_iscritti_m->get_iscritto($checked); 

     $utente = $this->utenti_m->get_utente($iscritto[0]->id_utente); 

     echo ("utente: <pre> ");var_dump($utente);echo (" </pre> \n\n"); 

    } 

这是代码,它基本上产生关联阵列

,这就是我从获得的var_dump:

array(1) { [0]=> 
    object(stdClass)#38 (27) { 
    ["id"]=> 
    string(3) "254" 
    ["nome"]=> 
    string(13) "Padre EDUARDO" 
    ["cognome"]=> 
    string(9) "ANATRELLA"  
    } 
} 

utente: 
array(1) { 
    [0]=> 
    object(stdClass)#37 (27) { 
    ["id"]=> 
    string(3) "338" 
    ["nome"]=> 
    string(4) "ELSA" 
    ["cognome"]=> 
    string(5) "PAONE"  
    } 
} 

我怎么可以排序的指数“诺姆”数组$个用户? 我花了几个小时,了解这种阵列如何工作,没有任何结果,你能帮助我吗?

回答

0

PHP的usort()函数允许您使用自定义功能进行排序阵列。

假设你的对象的数组存储在$utente,下面将每个对象与之比较的用匿名比较函数彼此对象。

在下面的代码的$utente阵列将通过nome值进行排序升序。

usort($utente, function($a, $b){ 
    if ($a->nome > $b->nome) { 
     return 1; 
    }elseif($a->nome < $b->nome){ 
     return -1; 
    }else{ 
    return 0; 
    } 
}); 

更多细节可以在http://php.net/manual/en/function.usort.php

1

这是你想要的功能: http://php.net/manual/en/function.array-multisort.php

您的代码应该是这个样子:

$sorted = array_multisort($utente, 'nome', SORT_ASC); 
+0

发现纠正我,如果我错了,但我敢肯定,'在array_multisort()'只排序数组的数组,而不是对象的数组? – RCrowt

+1

看来你是对的,我错过了。其他答案(你的)是正确的。 – KWeiss