Mam pytanie jak posortować tablicę dwuwymiarową gdzie np. 1 rekordem tablicy jest liczba, a drugim rekordem tablicy jest ciąg znaków np. 3 koza, 5 pies , próbowałem np. funkcje sortującą sortowanie bąbelkowe i użyć funkcji sort() albo ksort(), ale się nie udało.
to źle spróbowałeś bo ksort wystarczy, jeżeli jest tak jak piszesz, najlepiej podaj var dumpa tej tablicy
To jest tylko fragment tej tablicy nie dałem całej bo by była za duża
array(95) { [0]=> array(1) { [0]=> int(-2) } [1]=> array(2) { [0]=> string(7) “laremid” [1]=> int(-4) } [2]=> array(2) { [1]=> string(5) “nasen” [2]=> int(6) } [3]=> array(2) { [2]=> string(5) “sedam” [3]=> int(-6) } [4]=> array(2) { [3]=> string(9) “thiocodin” [4]=> int(0) } [5]=> array(2) { [4]=> string(7) “alermed” [5]=> int(-1) } [6]=> array(2) { [5]=> string(8) “pramolan” [6]=> int(-7) } [7]=> array(2) { [6]=> string(12) “hydroksyzyna” [7]=> int(-6) } [8]=> array(2) { [7]=> string(9) “trileptal” [8]=> int(-1) } [9]=> array(2) { [8]=> string(6) “acodin” [9]=> int(-3) } [10]=> array(2) { [9]=> string(8) “oxazepam” [10]=> int(-3) } [11]=> array(2) { [10]=> string(8) “signopam” [11]=> int(-4) } [12]=> array(2) { [11]=> string(7) “antidol” [12]=> int(-1) } [13]=> array(2) { [12]=> string(8) “relanium” [13]=> int(-6) } [14]=> array(2) { [13]=> string(9) “ibuprofen” [14]=> int(-5) }
Burdel masz w tej tablicy okropny… W pierwszym wierszu tablica, z jednym indeksem (0), potem tablica z dwoma wierszami, indeksy 0 i 1, potem kolejna, z dwoma, indeksy 1 i 2, kolejna i indeksy 2 i 3. Co chcesz w tym posortować?
Liczby chcę posortować.
W taki sposób tworzę tą tablicę
$wez = mysql_query("select distinct nazwa from wez ");
while ($wez2 = mysql_fetch_array($wez) ) {
$s[$i][] = porownaj_ciagi($text,$wez2[0]);
$s[][$i] = $wez2[0];
$i++;
}
Dobra… chciałem pisać elaborat, ale to chyba nie ma sensu…
for($i=1;$icount($array);$i++)
Dobrze zakładałem…
Jak nie pomogło, skoro posortowało tablicę po liczbie?
Ale ja chce tak żeby w drugim elemencie tablicy po już posortowaniu też był drugi element np. jest pociąg 3 winda 5 to żeby po posortowaniu był winda 5 pociąg 3
A tutaj w tej linijce
Tworzysz jednowymiarową tablicę.
$output[$array[$i][1]] = $array[$i][0];
Linux user, cnie?
foreach($output as $klucz = $wartosc) {$wynik[] = array($klucz, $wartosc);
Ale zastanów się, zastanów się dobrze, czy faktycznie potrzebujesz tej dwuwymiarowej tablicy.
By ktoś mi mógł napisać całe rozwiązanie bo dawno nie programowałem, a tablicami wielowymiarowymi się nie zajmowałem, będę bardzo wdzięczny.
Założę przez chwilę szaloną teorię, że jesteś w stanie sobie sam poradzić, z pozbawioną cienia znamion przemyślanej pętli while, którą używasz i zrobisz porządek w tej swojej pożal się Boże tablicy. Wtedy by posortować po tym całym $wez2[0] wystarczy to:
for($i=1;$icount($array);$i++)