una suma secundaria que ordenar matriz invertir inversa imprima como cambiar php arrays sorting

php - suma - matriz que imprima la diagonal



Ordenar una matriz por el valor de una matriz secundaria en PHP (3)

Tengo una matriz compuesta de matrices. Quiero ordenar la matriz principal por una propiedad de las matrices secundarias. Aquí hay un ejemplo

array(2) { [0]=> array(3) { [0]=> string(6) "105945" [1]=> string(10) "First name" [2]=> float(0.080878465391) } [1]=> array(3) { [0]=> string(6) "109145" [1]=> string(11) "Second name" [2]=> float(0.0504154818384) }

Me gustaría ordenar la matriz principal por [2] ascendiendo en las matrices secundarias, por lo que en este caso el resultado serían las matrices secundarias invertidas (.05, 08). ¿Es esto posible usar cualquiera de las numerosas funciones de clasificación de PHP?


Para patrones similares a la base de datos, use array_multisort como se ve en el ejemplo # 3.

Por ejemplo:

$sort = array(); foreach ($data as $key => $row) { $sort[$key] = $row[''basis'']; } array_multisort($sort, SORT_ASC, $data);

donde $data es su matriz de datos y la basis es el elemento utilizado para ordenar.


Puede hacer uso de la función de usort como:

$arr = array( array("105945","First name",0.080878465391), array("109145","Second name",0.0504154818384) ); function cmp($a, $b) { if ($a[2] == $b[2]) { return 0; } return ($a[2] < $b[2]) ? -1 : 1; } usort($arr,"cmp");


vea esta página por ejemplo

http://php.net/manual/en/function.sort.php

o ejemplo

<?php function multisort($array, $sort_by) { foreach ($array as $key => $value) { $evalstring = ''''; foreach ($sort_by as $sort_field) { $tmp[$sort_field][$key] = $value[$sort_field]; $evalstring .= ''$tmp[/''' . $sort_field . ''/'], ''; } } $evalstring .= ''$array''; $evalstring = ''array_multisort('' . $evalstring . '');''; eval($evalstring); return $array; } $test = array( array( ''a'' => ''1'', ''b'' => ''3''), array( ''a'' => ''2'', ''b'' => ''1''), array( ''a'' => ''1'', ''b'' => ''1'')); echo ''Unsorted: ''; print_r($test); $result = multisort( $test , array(''a'',''b'') ); echo ''Sorted: ''; print_r($result); ?> Result: Unsorted: Array ( [0] => Array ( [a] => 1 [b] => 3 ) [1] => Array ( [a] => 2 [b] => 1 ) [2] => Array ( [a] => 1 [b] => 1 ) ) Sorted: Array ( [0] => Array ( [a] => 1 [b] => 1 ) [1] => Array ( [a] => 1 [b] => 3 ) [2] => Array ( [a] => 2 [b] => 1 ) )