Ejemplo de función en PHP que permite ordenar un arreglo de objetos por uno de los atributos del objeto. El ejemplo esta basado en una clase llamada persona con dos atributos, nombre y edad. La función “ordenar_por_edad” tiene como parámetro de entrada un arreglo de objetos de tipo Persona y retorna el arreglo ordenado de forma ascendente por la edad.

class Persona
{
	var $nombre;
	var $edad;
	function __construct($nombre,$edad)
	{
		$this->nombre = $nombre;
		$this->edad = $edad;
	}
	
	public function getNombre()
	{
		return $this->nombre;
	}
	public function getEdad()
	{
		return $this->edad;
	}
}

function ordenar_por_edad(array $lista_personas)
{
	$cantidad_personas = sizeof($lista_personas);
	for($i = 0;$i < $cantidad_personas - 1 ;$i++)
	{
		for($j = $i +1;$j < $cantidad_personas;$j++)
		{
			if($lista_personas[$i]->getEdad() > $lista_personas[$j]->getEdad())
			{
				$auxiliar = $lista_personas[$i];
				$lista_personas[$i] = $lista_personas[$j];
				$lista_personas[$j] = $auxiliar;
			}
		}
	}
	return $lista_personas;
}

$lista_personas = array();
$lista_personas[] = new Persona('Alexis','30');
$lista_personas[] = new Persona('Renier','31');
$lista_personas[] = new Persona('Magdeline','28');
$lista_personas[] = new Persona('Alexis Jr','2');

$lista_ordenada_por_edad = ordenar_por_edad($lista_personas);

print '<ol>';
	print 'Listado ordenado por edad de menor a mayor';
	foreach($lista_ordenada_por_edad as $persona)
	{
		print '<li>'.$persona->getNombre().', Edad: '.$persona->getEdad().'</li>';
	}
print '</ol>';

Compartir en: