PHP – náhodné setřízení pole se zachováním klíčů (indexů)

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.

Jedna myšlenka na “PHP – náhodné setřízení pole se zachováním klíčů (indexů)”

  1. 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 :)..

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..