Autor | Zpráva | ||
---|---|---|---|
stepanka Profil * |
#1 · Zasláno: 2. 9. 2009, 13:50:51
Místo "setřídit" by se spíš hodilo "setřepat".. Jinými slovy bych potřebovala z pole
Array ( [1] => abc [2] => cde [4] => efg [5] => ghi [6] => ijk) udělat pole Array ( [0] => abc [1] => cde [2] => efg [3] => ghi [4] => ijk) Prošla jsem si na php.net různé funkce %sort%, ale tohle tam není... Existuje na to něco, nevěděl by někdo? Moc děkuju. |
||
tiso Profil |
#2 · Zasláno: 2. 9. 2009, 14:01:20
stepanka: „ale tohle tam není...“
Niektoré funkcie po zoradení nezachovávajú pôvodné kľúče, takže to robí presne to čo chceš, viď napríklad http://cz2.php.net/manual/en/function.sort.php a čítaj prvú note. Kvôli čomu to vlastne npotrebuješ? Nevidím pre to "setřepání" dôvod. |
||
Taps Profil |
#3 · Zasláno: 2. 9. 2009, 14:02:17
stepanka
zkus $pole=array("1"=>"abc","2"=>"cde","4"=>"efg","5"=>"ghi","6"=>"ijk"); $pole=array_values($pole); print_r($pole); |
||
stepanka Profil * |
#4 · Zasláno: 2. 9. 2009, 14:44:06
Omlouvám se, můj první dotaz nebyl správný. Vaše dvě odpovědi mě dovedly k tomu, že tohle moji situaci nevyřeší. Ještě jednou se omlouvám a oběma děkuju za reakci.
Potřebovala bych teda něco jiného - zjistit nejvyšší index z pole. To znamená, aby můj první kód vypsal číslo 6, druhý kód číslo 4. Našla jsem akorát řešení pro PERL, ale pro PHP ne.. Nevěděl by někdo? |
||
tiso Profil |
#5 · Zasláno: 2. 9. 2009, 14:47:16
stepanka: stále mi chýba ten dôvod prečo to potrebuješ...
|
||
Nox Profil |
#6 · Zasláno: 2. 9. 2009, 14:50:10
krsort a key...není to zrovna nejefektivnější, ale nenapadá mě nic jiného co by fungovalo i při proházených prvcích
|
||
SwimX Profil |
#7 · Zasláno: 2. 9. 2009, 14:52:09
stepanka:
$pole=array("1"=>"abc","2"=>"cde","4"=>"efg","5"=>"ghi","6"=>"ijk"); $pole=array_values($pole); $posledni = array_pop($pole); echo $posledni; araray pop ale vyřízne poslední věc z pole, takže pole $pole bude pak mít už jen 4 prvky. |
||
tiso Profil |
#8 · Zasláno: 2. 9. 2009, 14:53:22
SwimX: ale stepanka chcela key, nie value...
|
||
stepanka Profil * |
#9 · Zasláno: 2. 9. 2009, 14:54:35
tiso
Nevím, jestli to dostatečně vysvětlím, ale dejme tomu, že mám tedy pole $pole = array (1 => "abc", 2 => "cde", 4 => "efg", 5 => "ghi", 6 => "ijk"); které chci vypsat. Vypisuju ho takhle: for ($i=0; $i<count($pole); $i++) { echo $pole[$i].'<br />'; } Jenže tento příklad mi vyhodí abc cde efg což nejsou všechny hodnoty. Proto mi pomůže ten maximální index. Zjistím ho, a projdu celé pole, pokud bude existovat hodnota, vypíšu ji. |
||
tiso Profil |
#10 · Zasláno: 2. 9. 2009, 14:59:26
stepanka: nepoužívaj cyklus for ale cyklus foreach:
foreach($pole as $value){ echo $value.'<br />'; } a pokiaľ potrebuješ pracovať s kľúčmi: foreach($pole as $key => $value){ //robim nieco s key a value aktualneho prvku } |
||
SwimX Profil |
#11 · Zasláno: 2. 9. 2009, 15:00:05 · Upravil/a: SwimX
//píšu pomalu, problémn vyřešen jinak :)
|
||
karbon Profil * |
#12 · Zasláno: 2. 9. 2009, 15:04:39
Pokud dobře chápu problém, tak by mělo stačit něco takového:
$max = 0; foreach($pole as $k => $v){ if($k > $max){ $max = $k; } } Pokud jsem špatně pochopil zadání, tak se omlouvám. |
||
stepanka Profil * |
#13 · Zasláno: 2. 9. 2009, 15:09:31
tiso
Super, děkuju.. už nějakou dobu si hraju s FORem, a foreach mi úplně vypadl z hlavy. Takhle to funguje úplně bez problému. Jsem tele, že mě to nenapadlo. I ostatním díky za reakce. |
||
Časová prodleva: 15 let
|
0