Cuestión : clasificación de arsenal del grupo

hola, el

i que intenta clasificar un arsenal de órdenes asociativos, basado en uno del keys.

if que el valor de la llave es un primitivo, clasificación del normal ocurre - esto trabaja fine.

if el valor de la llave es un arsenal, yo quisiera hacerlo clasificar por código del ejemplo del

some de los “grupos " es pedacito del sorted_by_name del attached

the está muy bien - pero para el sorted_by_list, qué quiero vuelto es todo el arsenal pedido como sigue: el

all ésos con “1” (o el más bajo si ningunos tienen “1”) de él es valor de la lista primero, después sigue habiendo el todo eso eso tiene el más alto siguiente (“2”), etc.

so ahora, las vueltas para el parecer del sort_by_list esto:


de Array
del => del

del

de Array
del => del

del

del

Array
0] => Array
(del
[=> [conocido] Array
del g
[lista] del => (del
[0] => 1
) (del
) 1] [=> [conocido] Array
del f
[lista] del => (del
[0] => 2
) (del
) [2] => [conocido] Array
del b
[lista] del => (del
[0] => 3
) (del
) => Array
del

[5] del

) de Array
del => del

del

) de Array
del => de/> [3] => [conocido] Array
del h
[lista] del => (del
0] [1] => 2
) del => 1
(del
[[4] => [conocido] Array
del a
[lista] del => (del
0] [1] => 3
) del => 1
(del
[=> [conocido] Array
del e
[lista] del => (del
0] => 2
(del
[[1]


whereas del

del

de Array
del => del

del

de Array
del => del

del

del => 3
)) 6] [=> [conocido] Array
del d
[lista] del => (del
0] [1] => 4
) del => 3
) (del
[7] [=> [conocido] Array
del c
[lista] del => (del
0] 1] => 4
del => 3
[3] del => 2
del => 1
(del
[[[2]))) que como para volver: => Array
del

[2] del

) de Array
del => del

del

) del


Array
0] => Array
(del
[=> [conocido] Array
del g
[lista] del => (del
[0] => 1
) (del
1] [=> [conocido] Array
del h
[lista] del => (del
0] [1] => 2
) del => 1
(del
[=> [conocido] Array
del c
[lista] del => (del
0] => 1
(del
[                    [1] 2] 3] => Array
(
[nombre] del

del

) de Array
del => del

del

) de Array
del => del

del

) del => 4
) del => 3
del => 2
[[3] [=> [conocido] Array
del a
[lista] del => (del
0] [1] => 3
) del => 1
(del
[4] [=> [conocido] Array
del f
[lista] del => (del
[0] => 2
) (del
5] [

)
del

de Array
del => del

del

de Array
del => del

del

de Array
del => del e
[lista] del => 0] [1] => 3
) del => 2
) (del
[[6] => [conocido] Array
del b
[lista] del => (del
[0] => 3
) (del
) [7] => [conocido] Array
del d
[lista] del => (del
0] [1] => 4
) del => 3
) (del
[ class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
¿>< notpretty " del class= " del id= " codeSnippet945009 del
 de la “lista”” del => “del “nombre h”, (1.2));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre g”, (1));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre a”, (1.3));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre f”, (2));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre e”, (2.3));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre b”, (3));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre c”, (1.2.3.4));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre d”, (3.4));

deep_sort de la función ($array, $sorton) {
	
	usort ($array, función ($a, $b) uso ($sorton) {
	
		$a = $a [$sorton];
		$b = $b [$sorton];
		
		si (is_array ($a) && is_array ($b)) {
		
			// este pedacito es obviamente dañado - incluido solamente para los propósitos ilustrativos
			$a = implode ('', $a);
			$b = implode ('', $b);
			
		}
		
		¿volver (== de $a $b)? 0: ¿($a > $b)? 1: -1;
	
	});
	
	$array de vuelta;

}

$sorted_by_name = deep_sort ($data, “nombre ");

impresión “
”;

print_r ($sorted_by_name);

impresión “
”; $sorted_by_list = deep_sort ($data, “lista "); impresión “
”;

print_r ($sorted_by_list);

impresión “
”; ¿? >
class= del

Respuesta : clasificación de arsenal del grupo

Mirar esto encima y ver si le tiene sentido.  El mejor, ~Ray
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
";

// TEST DATA FROM THE POST AT EE
$data[] = array('name' => “h”, arsenal del => de la “lista” (1.2));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre g”, (1));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre a”, (1.3));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre f”, (2));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre e”, (2.3));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre b”, (3));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre c”, (1.2.3.4));
$data [] = arsenal (arsenal del => de la “lista”” del => “del “nombre d”, (3.4));


// UNA FUNCIÓN A COMPARAR POR NAMES
cmp_name de la función ($a, $b)
{
    si == $b [“nombre” (de $a [“nombre”]]) vuelta 0;
    volver ($a [“nombre”] <> $arr)
{
    $test [$ptr] [“grupo”] = implode ('', $arr [“lista”]);
    si (strlen ($test [$ptr] [“grupo”]) > $maxlen) $maxlen = strlen ($test [$ptr] [“grupo”]);
}

COJÍN DE // LOS GRUPOS A LA LONGITUD CONSTANTE
foreach ($test como => $arr de $ptr)
{
    $test [$ptr] [“grupo”] = str_pad ($test [$ptr] [“grupo”], $maxlen+1, “0”);
}

CLASE DE // EN GRUPOS
usort ($test, “cmp_group ");

// QUITA A GRUPOS (SI ES NECESARIO)
foreach ($test como => $arr de $ptr)
{
    unset ($test [$ptr] [“grupo”]);
}

DEMOSTRACIÓN DE // EL PRODUCTO DEL TRABAJO
var_dump ($test);
Otras soluciones  
 
programming4us programming4us