Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie wielowymiarowej tablicy :/
Forum PHP.pl > Forum > PHP
slash^
Witam

Mam taki troche dziwny problem, otoz mam tablice:

Kod
$tab[0][0]="Zenek"

$tab[0][1]=19

$tab[1][0]="Michal"

$tab[1][1]=22

$tab[2][0]="Tomek"

$tab[2][1]=17


i mam problem:

jak posortowac ja, wg pierwszego parametru (tu: imie), tak, aby 2-gi byl przypisywany wg 1-szego? Wiem ze musibyc cos z tym multisort ale nie wiem dokladnie co wpisac sad.gif

Efektem tego sorotwania powinnobyc:
Michal 22, Tomek 17, Zenek 19

z gory dzieki
Myrek
Ja mam taki skrypt jak na http://forum.php.pl/viewtopic.php?t=2507, tylko są z nimi problemy z polskimi znakami, o które zresztą pytam, więcej szczegółów tam na stronie. Jeśli chcesz posortować według pierwszej kolumny, musisz zastosować coś takiego
Kod
function sortowanie($x, $y)

{

if ($x[0] == $y[0])

   return 0;

else if ($x[0] < $y[0])

   return -1;

else

   return 1;

}

usort($tablica, sortowanie);

Będziesz miał:
$tab[0][0]="Michał"
$tab[0][1]=22
$tab[1][0]="Tomekl"
$tab[1][1]=19
$tab[2][0]="Zenek"
$tab[2][1]=19
itsme
Cytat
$array[0]['name'] = "Niko";
$array[0]['age'] = 24;
$array[1]['name'] = "Dennis";
$array[1]['age'] = 34;

//the fuction:

function array_csort($marray, $column) { //coded by Ichier2003
foreach ($marray as $row) {
$sortarr[] = $row[$column];
}
array_multisort($sortarr, $marray);
return $marray;
}

//just use it like that:

$array = array_csort($array,"age");
zastosowalem rowniez taki kod
[php:1:08fe5696e6]<?php
function csort($array, $column){
$i=0;
for($i=0; $i<count($array); $i++){
$sortarr[]=$array[$i][$column];
}

array_multisort($sortarr, $array);

return($array);
}

?>[/php:1:08fe5696e6]
Oba działąją pięknie
adwol
Cytat
Kod
function sortowanie($x, $y)

{

if ($x[0] == $y[0])

   return 0;

else if ($x[0] < $y[0])

   return -1;

else

   return 1;

}

usort($tablica, sortowanie);

Lepiej chyba zrobić:
[php:1:d874423554]<?php
function sortowanie($x, $y)
{
return strcmp($x[0], $y[0]);
}
?>[/php:1:d874423554]
albo w wersji z polskimi znakami:
[php:1:d874423554]<?php
setlocale(LC_COLLATE, 'pl_PL');
function sortowanie($x, $y)
{
return strcoll($x[0], $y[0]);
}
?>[/php:1:d874423554]
Gonzo
Nareszcie ktoś podał dobrą metodę na sortowanie z polskimi znakami smile.gif. Nadmienię tylko, że lepiej jest wykorzystać

[php:1:901e150b68]<?
setlocale(LC_ALL, "Polish");
?>[/php:1:901e150b68]

bo jest bardziej uniwersalne i działa na większości serwerów.

Szukam skryptu sortującego z uwzględnieniem liczb...
adwol
Cytat
Nareszcie ktoś podał dobrą metodę na sortowanie z polskimi znakami smile.gif.

Jakieś 2-3 miesiące temu pytałeś o to samo i wtedy mówiłeś, że podana przeze mnie metoda jest zła bo Ci nie działała. Była to dokładnie ta sama metoda (wykorzystująca strcoll) i teraz nagle mówisz, że nareszcie ktoś podał dobrą metodę. Może po prostu Ty nareszcie masz porządnie skonfigurowane locale w systemie.
Cytat
Nadmienię tylko, że lepiej jest wykorzystać
[php:1:afa4e323e6]<?
setlocale(LC_ALL, "Polish");
?>[/php:1:afa4e323e6]

bo jest bardziej uniwersalne i działa na większości serwerów.

Spierałbym się, ale niech Ci już będzie.
kurtz
Hej
Cytat
Nareszcie ktoś podał dobrą metodę na sortowanie z polskimi znakami :)
Na poczatku sierpnia padla taka sama odpowiedz. Ktos tutaj mija sie z prawda ;p


Pozdrawiam
Gonzo
Może i tak, ale po co się kłócić i spierać? Przecież należymy do tej samej subkultury Internetu, a nawet tego samego forum winksmiley.jpg. Hehe, jest okej chłopaki (dziewczyny też smile.gif.
dexter_m
@myrek - przykład słowo w słowo spisany z książki php i MySQL tworzenie stron www vademecum profesjonalisty cool.gif
aleksander
po jakie licho odgrzewasz temat sprzed dwóch lat? :S
Pan Myrek i tak tego pewnie nie przeczyta bo go dawno na forum juz nie ma...
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.