对数组 php 的数组进行排序

Sorting array of array php

我正在做一个基于 codeigniter 的小项目,我不是 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"      
  }
}

如何按索引 "nome" 对数组 $utenti 进行排序? 我花了几个小时,了解这种数组是如何工作的,没有任何结果,你能帮我吗?

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

您的代码应如下所示:

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

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

找到更多详细信息