Advertisement
rgman

Ordenamiento por usort

Aug 5th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.96 KB | None | 0 0
  1. <?php
  2.  
  3. $data = array(
  4.     array('nombre' => 'Primero', 'orden' => 1),
  5.     array('nombre' => 'Segundo', 'orden' => 2),
  6.     array('nombre' => 'Primero', 'orden' => 1),
  7.     array('nombre' => 'Segundo', 'orden' => 4),
  8.     array('nombre' => 'Quinto', 'orden' => 5),
  9.     array('nombre' => 'Primero', 'orden' => 5),
  10. );
  11.  
  12. function ordenarPorNombre( $arreglo ) {
  13.     usort( $arreglo, function( $a, $b ){
  14.         return strcmp( $a['nombre'], $b['nombre'] );
  15.     } );
  16.     return $arreglo;
  17. }
  18.  
  19. class OrdenamientoPorNombreTest extends PHPUnit_Framework_TestCase {
  20.  
  21.     /**
  22.      * @dataProvider getOrdenarData
  23.      */
  24.     public function testOrdenarPorNombre($arreglo, $resultado)
  25.     {
  26.         $this->assertEquals( $resultado, ordenarPorNombre( $arreglo ) );
  27.     }
  28.  
  29.     public function getOrdenarData() {
  30.         return array(
  31.             array( array(
  32.                 array('nombre' => 'Primero'),
  33.                 array('nombre' => 'Segundo'),
  34.                 array('nombre' => 'Primero'),
  35.                 array('nombre' => 'Segundo'),
  36.                 array('nombre' => 'Quinto'),
  37.                 array('nombre' => 'Primero'),
  38.             ), array(
  39.                 array('nombre' => 'Primero'),
  40.                 array('nombre' => 'Primero'),
  41.                 array('nombre' => 'Primero'),
  42.                 array('nombre' => 'Quinto'),
  43.                 array('nombre' => 'Segundo'),
  44.                 array('nombre' => 'Segundo'),
  45.             ) ),
  46.            
  47.             array(
  48.                 array(
  49.                     array('nombre' => 'B'),
  50.                     array('nombre' => 'A'),
  51.                     array('nombre' => 'A'),
  52.                     array('nombre' => 'B'),
  53.                     ),
  54.                 array(
  55.                     array('nombre' => 'A'),
  56.                     array('nombre' => 'A'),
  57.                     array('nombre' => 'B'),
  58.                     array('nombre' => 'B'),
  59.                     ),
  60.             ),
  61.         );
  62.     }    
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement