valor sort por ordenar objects multidimensional manejo fecha buscar array php arrays sorting multidimensional-array

por - php sort array of objects



¿Ordenar una matriz multidimensional en PHP? (3)

Esta pregunta ya tiene una respuesta aquí:

Tengo este tipo de matriz

array(5) { [0]=> array(5) { [0]=> string(7) "jannala" [1]=> string(10) "2009-11-16" [2]=> string(29) " <p>Jotain mukavaa.</p> " [3]=> int(12) [4]=> int(1270929600) } [1]=> array(5) { [0]=> string(7) "jannala" [1]=> string(10) "2009-11-16" [2]=> string(51) " <p>Saapumiserä II/09 astuu palvelukseen</p> " [3]=> int(11) [4]=> int(1270929600) } ... }

Lo que necesito hacer es ordenar la matriz en función de la matriz [x] [4] (el valor de marca de tiempo de Unix). ¿Cómo lograría esto?


Estaba luchando con la función "comparar" anterior, pero pude hacer que esto funcionara:

function cmp($a, $b) { if ($a[''4''] == $b[''4'']) { return 0; } return ($a[''4''] > $b[''4'']) ? -1 : 1; } usort($array, "cmp");

(Tenga en cuenta que esto también es un tipo descendente, no ascendente).


Solo mi pensamiento inicial: envolver cada una de las matrices anidadas en un objeto (instancia de clase), de modo que una vez ordenado por un campo específico (en este caso, la marca de tiempo de Unix), puede acceder fácilmente a la otra información utilizando el mismo referencia de objeto

Por lo tanto, su matriz anidada de matrices puede convertirse en una matriz de objetos, cada uno de los cuales tiene un método de "ordenamiento".


use una función de comparación, en este caso, compara el valor de marca de tiempo de unix de la matriz:

function compare($x, $y) { if ( $x[4] == $y[4] ) return 0; else if ( $x[4] < $y[4] ) return -1; else return 1; }

y luego usort usando la función de usort esta manera:

usort($nameOfArray, ''compare'');

Esta función clasificará una matriz por sus valores utilizando una función de comparación proporcionada por el usuario. Si la matriz que desea ordenar debe clasificarse según criterios no triviales, debe usar esta función.

Tomado de PHP: manual de usort .