
Občas člověk potřebuje setřidit pole s klíči. V samotném PHP máme pro setřízení dvě funkce, avšak jedna chybí a může se občas hodit. Jak tedy setřídit náhodně pole se zachováním klíčů?
V současné verzi PHP (5.x) máme k dispozici funkci asort – třídí pole se zachováním klíčů vzestupně (ASCentně) a arsort – třídí pole se zachováním klíčů sestupně (DESCentně).
Co však dělat, pokud chceme asociativní pole zamíchat a klíče zachovat? Pomůže si funkcí shuffle, která umí zamíchat klasické pole a kterou aplikujeme nad nově vytvořeným polem klíčů, které nakonec použijeme pro nové setřízení prvků pole. Zřejmé je to z následujícího kódu:
$keys = array_keys($files); shuffle($keys); foreach ($keys as $key) { $files_rand[$key] = $files[$key]; } $files = $files_rand;
Uvedené řešení nemusí být jiště jediné, ale je vcelku triviální na pochopení a spolehlivě funguje.
No já teď pár měsíců zpět řešil funkci řazení v multidimenzionálním poli – řazení podle prvku v poli polí, přičemž počet subpolí nebyl předem znám.. to byla také lahůdka :)..