Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie wielowymiarowej tablicy
Forum PHP.pl > Forum > PHP
Bielo
mam tablicę
[php:1:db88fa7ed3]<?php
$tablica[]=array(0,1,2,3,4,5,6,7,8,9)//i tak parę razy np 100
?>[/php:1:db88fa7ed3]
teraz chcę żeby cała tablica $tablica została posortowana po 6 kolumnie
bamboos
RTFM: [manual:7e914e5711]array_multisort[/manual:7e914e5711] <-- popatrz w dopiski użytkowników
Bielo
Patrzyłem tylko nie wiem czy w takim razie powinienem zamienić każdą kolumnę na oddzielną tablicę jednowymiarową?
bamboos
[php:1:de3f2c78bb]<?php
function array_csort() { //coded by Ichier2003
$args = func_get_args();
$marray = array_shift($args);

$msortline = "return(array_multisort(";
foreach ($args as $arg) {
$i++;
if (is_string($arg)) {
foreach ($marray as $row) {
$sortarr[$i][] = $row[$arg];
}
} else {
$sortarr[$i] = $arg;
}
$msortline .= "$sortarr[".$i."],";
}
$msortline .= "$marray));";

eval($msortline);
return $marray;
}
?>[/php:1:de3f2c78bb]
Kod
syntax:

$new_array = array_multisort($array [, 'col1' [, SORT_FLAG [, SORT_FLAG]]]...);

... tylko podajesz tablicę i według jakiej kolumny ma sortować, oraz ewentualnie typ według jakiego ma sortować i ewentualnie kolejne kolumny według których ma sortować, jeśli w poprzedniej są takie same elemanty...
Po dokładniejszy opis patrz w manual!
Bielo
$tem=array_csort($tem,6,SORT_DESC);

Warning: array_multisort() [function.array-multisort.php]: Argument #1 is an unknown sort flag in C:Projektynewzobaczforum.php(20) : eval()'d code on line 1
slash^
[php:1:7ea6056512]<?php

function sort_tab($tabl, $kol) {
foreach ($tabl as $linia) $sort[] = $linia[$kol];
array_multisort($sort, $tabl);
return $tabl;
}


$tablica = sort_tab($tablica, 6);

?>[/php:1:7ea6056512]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.