Autor Zpráva
H13
Profil
Ahoj mám takovou otázku, je možné setřídit pole podobně jako v databázi, to znamená např. něco jako v databázi ORDER BY kategorie, poradi:

Př.
$pole =  Array (

[0]=>Array([jmeno]=>prvnijemno [kategorie]=>2 [poradi]=>1)
[1]=>Array([jmeno]=>druhejemno [kategorie]=>2 [poradi]=>3)
[2]=>Array([jmeno]=>tretijemno [kategorie]=>2 [poradi]=>2)
[3]=>Array([jmeno]=>ctvrtejemno [kategorie]=>1 [poradi]=>1)
)

Tak aby prvně bylo zařeno podle kategorie a poté podle poradi:

[0]=>Array([jmeno]=>ctvrtejemno [kategorie]=>1 [poradi]=>1)
[1]=>Array([jmeno]=>prvnijemno [kategorie]=>2 [poradi]=>1)
[2]=>Array([jmeno]=>tretijemno [kategorie]=>2 [poradi]=>2)
[3]=>Array([jmeno]=>druhejemno [kategorie]=>2 [poradi]=>3)
temistokles
Profil
http://sk.php.net/manual/cs/function.array-multisort.php

Mohlo by pomôcť.
H13
Profil
to jsem zkoušel a nějak mi to nejde
echo
Profil *

<?php
# Exemple of sorting multi-dimensional arrays by one of it's fields:

$result[0]['nome']='Joao';
$result[0]['order']=5;
$result[0]['comment']='taky';
$result[1]['nome']='Pedro';
$result[1]['order']=1;
$result[1]['comment']='onaky';
$result[2]['nome']='Marcelo';
$result[2]['order']=3;
$result[2]['comment']='posraty';
$result[3]['nome']='Kapusto';
$result[3]['order']=8;
$result[3]['comment']='postaty';
$result[4]['nome']='Rafaelo';
$result[4]['order']=4;
$result[4]['comment']='odfarbeny';

if(isset($_GET['sort_by']))
{
$sort_by=$_GET['sort_by'];
foreach($result as $row)$sort_col[]=$row[$sort_by];
array_multisort($sort_col,SORT_ASC,$result);
}

echo'Sort by '." ";
echo'<a href="'.$PHP_SELF.'?sort_by=nome" >nome</a>'." ";//'.$QUERY_STRING.'&
echo'<a href="'.$PHP_SELF.'?sort_by=order" >order</a>'." ";
echo'<a href="'.$PHP_SELF.'?sort_by=comment" >comment</a>'." ";

echo'<pre>'." ";
print_r($result);
echo'</pre>'." ";
?>
H13
Profil
Tak to je maso... díky moc asi to vyřeším pomocí databáze...
temistokles
Profil
H13
Zameraj sa na tú funkciu array_multisort() a prečítaj si o nej v manuáli, je to rozpísané nádherne a aj to nádherne funguje. Inak skript od echo-a obsahuje de facto v "jadre" práve túto funkciu ;)
joejoe
Profil *
imho asi neuzitecnejsi na takove veci je funkce usort()

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: