![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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";
zastosowalem rowniez taki kod
$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"); [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 |
|
|
![]()
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] |
|
|
![]()
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... |
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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) .
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 0 Dołączył: 16.07.2005 Ostrzeżenie: (10%) ![]() ![]() |
@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)
|
|
|
![]()
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... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 00:32 |