Welcome to the Cookbook

loading...

8.5.3 sort

There is no translation yet for this section. Please help out and translate this.. More information about translations

array Set::sort ($data, $path, $dir)

Sorts an array by any value, determined by a Set-compatible path.

$a = array(
	0 => array('Person' => array('name' => 'Jeff')),
	1 => array('Shirt' => array('color' => 'black'))
);
$result = Set::sort($a, '{n}.Person.name', 'asc');
/* $result now looks like: 
	Array
	(
	    [0] => Array
	        (
	            [Shirt] => Array
	                (
	                    [color] => black
	                )
	        )
	    [1] => Array
	        (
	            [Person] => Array
	                (
	                    [name] => Jeff
	                )
	        )
	)
*/

$result = Set::sort($a, '{n}.Shirt', 'asc');
/* $result now looks like: 
	Array
	(
	    [0] => Array
	        (
	            [Person] => Array
	                (
	                    [name] => Jeff
	                )
	        )
	    [1] => Array
	        (
	            [Shirt] => Array
	                (
	                    [color] => black
	                )
	        )
	)
*/

$result = Set::sort($a, '{n}', 'desc');
/* $result now looks like: 
	Array
	(
	    [0] => Array
	        (
	            [Shirt] => Array
	                (
	                    [color] => black
	                )
	        )
	    [1] => Array
	        (
	            [Person] => Array
	                (
	                    [name] => Jeff
	                )
	        )
	)
*/

$a = array(
	array(7,6,4),
	array(3,4,5),
	array(3,2,1),
);

$result = Set::sort($a, '{n}.{n}', 'asc');
/* $result now looks like: 
	Array
	(
	    [0] => Array
	        (
	            [0] => 3
	            [1] => 2
	            [2] => 1
	        )
	    [1] => Array
	        (
	            [0] => 3
	            [1] => 4
	            [2] => 5
	        )
	    [2] => Array
	        (
	            [0] => 7
	            [1] => 6
	            [2] => 4
	        )
	)
*/
  1. $a = array(
  2. 0 => array('Person' => array('name' => 'Jeff')),
  3. 1 => array('Shirt' => array('color' => 'black'))
  4. );
  5. $result = Set::sort($a, '{n}.Person.name', 'asc');
  6. /* $result now looks like:
  7. Array
  8. (
  9. [0] => Array
  10. (
  11. [Shirt] => Array
  12. (
  13. [color] => black
  14. )
  15. )
  16. [1] => Array
  17. (
  18. [Person] => Array
  19. (
  20. [name] => Jeff
  21. )
  22. )
  23. )
  24. */
  25. $result = Set::sort($a, '{n}.Shirt', 'asc');
  26. /* $result now looks like:
  27. Array
  28. (
  29. [0] => Array
  30. (
  31. [Person] => Array
  32. (
  33. [name] => Jeff
  34. )
  35. )
  36. [1] => Array
  37. (
  38. [Shirt] => Array
  39. (
  40. [color] => black
  41. )
  42. )
  43. )
  44. */
  45. $result = Set::sort($a, '{n}', 'desc');
  46. /* $result now looks like:
  47. Array
  48. (
  49. [0] => Array
  50. (
  51. [Shirt] => Array
  52. (
  53. [color] => black
  54. )
  55. )
  56. [1] => Array
  57. (
  58. [Person] => Array
  59. (
  60. [name] => Jeff
  61. )
  62. )
  63. )
  64. */
  65. $a = array(
  66. array(7,6,4),
  67. array(3,4,5),
  68. array(3,2,1),
  69. );
  70. $result = Set::sort($a, '{n}.{n}', 'asc');
  71. /* $result now looks like:
  72. Array
  73. (
  74. [0] => Array
  75. (
  76. [0] => 3
  77. [1] => 2
  78. [2] => 1
  79. )
  80. [1] => Array
  81. (
  82. [0] => 3
  83. [1] => 4
  84. [2] => 5
  85. )
  86. [2] => Array
  87. (
  88. [0] => 7
  89. [1] => 6
  90. [2] => 4
  91. )
  92. )
  93. */