Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie wielowymiarowej tablicy :/
slash^
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

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

z gory dzieki
Go to the top of the page
+Quote Post
Myrek
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 8.02.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
itsme
post
Post #3





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




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
Go to the top of the page
+Quote Post
adwol
post
Post #4





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


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]
Go to the top of the page
+Quote Post
Gonzo
post
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.08.2003

Ostrzeżenie: (0%)
-----


Nareszcie ktoś podał dobrą metodę na sortowanie z polskimi znakami (IMG:http://forum.php.pl/style_emoticons/default/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...
Go to the top of the page
+Quote Post
adwol
post
Post #6





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


Cytat
Nareszcie ktoś podał dobrą metodę na sortowanie z polskimi znakami (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
kurtz
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Gonzo
post
Post #8





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 19.08.2003

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Hehe, jest okej chłopaki (dziewczyny też (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
dexter_m
post
Post #9





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 16.07.2005

Ostrzeżenie: (10%)
X----


@myrek - przykład słowo w słowo spisany z książki php i MySQL tworzenie stron www vademecum profesjonalisty (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
Go to the top of the page
+Quote Post
aleksander
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 00:32