Autor | Zpráva | ||
---|---|---|---|
Milkys Profil |
Zdravím všechny.
existuje nějaká funkce na seřazení pole na základě nejdelšího klíče (počítáno i včetně případných bílých znaků, mezer) se zachováním příslušné hodnoty? Uvedu příklad: $pole = array('sss' => 'wwww', 'xxxx' => 'qq', 'tt' => 'gggg'); $pole = array('xxxx' => 'qq', 'sss' => 'wwww', 'tt' => 'gggg'); Děkuji za postrčení. Pokud se to již probíralo, prosím o odkaz - nenašel jsem. |
||
Kajman Profil |
Mkněte na
uksort() (Samo o sobě to neseřadí, ale můžete řazení předat vlastní funkci, která se bude rozhodovat podle délky řetězce.) |
||
Milkys Profil |
#3 · Zasláno: 17. 3. 2014, 10:56:43 · Upravil/a: Milkys
Kajman:
Děkuji. Takže pomocí funkce spočítat počet znaků v řetězce v klíči a tu funkci použít v 2. parametru uksort(). Chápu to správně? Jo, děkuji. toto funguje: function strlen_uksort($a,$b) { return strlen($a)<strlen($b); } uksort($pole, "strlen_uksort"); |
||
Milkys Profil |
#4 · Zasláno: 17. 3. 2014, 11:59:08
Přesnější je to s mb_strlen(). Vzhledem ke sčítání znaků s diakritikou.
function strlen_uksort($a,$b) { return mb_strlen($a, "UTF-8") < mb_strlen($b, "UTF-8"); } |
||
Časová prodleva: 10 let
|
0