Autor Zpráva
kokolino
Profil
Čawte mám problém s tým, že moje pole sa tvári, že nemá nasledujúci prvok
<?php
$os_x=array("0","0","1","1","2","2");
$os_x1=array_unique($os_x); //odstranenie duplicit
foreach ($os_x1 as $id => $value){
echo"<br>prvá hodnota:".$os_x1[$id]."ďalšia hodnota".$os_x1[$id+1];
}
?>

na výstupe dostanem
prvá hodnota 0 ďalšia hodnota (tuto nic)
prvá hodnota 1 ďalšia hodnota (tuto nic)
prvá hodnota 2 ďalšia hodnota (tuto nic)

chcem sa spýtať, že kde robím chybu ?
panther
Profil
kokolino:
klíče zůstávají, proto tvoje klíče, které voláš, neexistují. To můžeš vidět, kdyby sis proměnnou $id vypsal.

$os_x = array("0","0","0","1","1","2","2");
$os_x1 = array_unique($os_x); //odstranenie duplicit
foreach ($os_x1 as $id => $value) {
    echo $id; // 0, 3, 5
}

Klíče se dají přepočítat na číselné začínající nulou funkcí array_values, tedy
$os_x = array("0","0","0","1","1","2","2");
$os_x1 = array_values(array_unique($os_x)); //odstranenie duplicit
foreach ($os_x1 as $id => $value){
    echo $id; // 0, 1, 2
}
ShiraNai7
Profil
1) array_unique zachovává indexy
2) $os_x1[$id+1] bude u poslední hodnoty hlásit že jde o neznámý index

$os_x = array("0", "0", "1", "1", "2", "2");
$os_x1 = array_values(array_unique($os_x)); //odstranenie duplicit
foreach($os_x1 as $id => $value) {
    echo "<br>prvá hodnota:".$os_x1[$id]." ďalšia hodnota: ".(isset($os_x1[$id + 1]) ? $os_x1[$id + 1] : 'NENÍ!');
}
kokolino
Profil
panther, ShiraNai7
obom Vám ďakujem za vysvetlenie a pomoc

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: