Autor Zpráva
Pavel015
Profil
Dobrý večer,

chtěl bych moc poprosit o radu.

Mám 3 pole:
    $nabidky = array("85", "86", "87", "88", "89", "90", "91");
    $vybrano = array("0", "2", "0", "0", "8", "0", "0");
    $nenulove = array("1", "4");

Uživatel má nějaké nabídky, které z nich si vybere značí pole $vybrano. Ještě se mi podařilo zjistit, jaké pozice jsou nenulové (1,4).

Potřeboval bych z toho dostat další pole, do ve které bych měl čísla 86, 89. Nevíte, jak by ten kód měl vypadat?

Díky moc.


Takto:
    $novepole = [];
    for ($i=0; $i<count($nenulove); $i++) { 
    array_push($novepole, $nabidky[$i]);
    }
Kcko
Profil
Pavel015:
Piš trošku jak člověk, musel jsem si to přečíst 3x, než jsem pochopil co chceš.

$novepole = [];

foreach ($nenulove as $k => $v)
{
    
    if (isset($nabidky[$v]))
    {
        $novepole[] = $nabidky[$v];
    }
}
  
        
print_r($novepole);

PS. Víš, že čísla se do apostrofů/uvozovek nedávají? Takhle z toho děláš string.
Keeehi
Profil
Pavel015:
Pokud zachováš původní formát z Procházení pole selectů, pak bude fungovat elegantní
$vybrana_mista = array_filter($_GET['vybrana_mista']);

Funkce array_filter totiž defaultně z pole odstraní všechny nulové hodnoty.

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: