Olá meus amigos e amigas tudo bem? Hoje vou ser breve.
Se vc precisou ordernar um array de objetos pelo atributo aqui esta a solução.
Não importa se o atributo é privado ok? Vamos utilizar o usort do php que recebe como parametro o array e um callback que é nossa função capaz de ordenar esse cara.
- <?php
- /* Funcao que ira ordenar */
- function verificador($obj1, $obj2) {
- if ($obj1->getOrdem() < $obj2->getOrdem()) {
- return -1;
- } elseif ($obj1->getOrdem() > $obj2->getOrdem()) {
- return +1;
- }
- return 0;
- }
- /* Classe de exemplo */
- class Pessoa{
- private $idade;
- private $ordem;
- public function getIdade() {
- return $this->idade;
- }
- public function setIdade($idade) {
- $this->idade = $idade;
- }
- public function getOrdem() {
- return $this->ordem;
- }
- public function setOrdem($ordem) {
- $this->ordem = $ordem;
- }
- }
- /* O array que vamos colocar os objetos*/
- $array_objetos = array();
- /* 6 objetos pessoa com atributos aleatorios */
- for($i = 0; $i < 6; $i++):
- $objeto = new Pessoa();
- $objeto->setIdade(rand(20, 60));
- $objeto->setOrdem(rand(0,30));
- $array_objetos[] = $objeto;
- endfor;
- /* Mostrando o array de objetos criado */
- echo "<h1>Array de objetos desordenados</h1><br>";
- var_dump($array_objetos);
- echo "<br><hr><br>";
- /* Usando o usort */
- usort($array_objetos, 'verificador');
- /* Mostrando o array de objetos criado */
- echo "<h1>Array de objetos ORDENADOS pelo atributo ordem</h1><br>";
- var_dump($array_objetos);
- echo "<br><hr><br>";
- ?>
Bem, espero ter ajudado... hehehe
Cara eu precisando disso urgentemente e vejo seu post AGORA! Deus realmente existe! Valeuuu
ResponderExcluirMuito obrigado! Me economizou um baita tempo.
ResponderExcluirMUITO bom!
ResponderExcluirobrigado!
ResponderExcluir