Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tupla-arvot taulukossa

Wizard [24.04.2004 17:35:38]

#

Pieni ongelma:

Minulla on moniuloitteinen taulukko jossa on x määrä alkioita.

Haluan PHP:llä poistaa kaikki ne arvot joita on vain YKSI kappale. array_unique ei ole siis se mitä kaipaan.

Lajittelu on helppo homma, mutta sitten tulikin hieman tenkkapoo (eli ei ajatus kulje taas).

Jollain valmista pientä koodinpätkää tai vastaavaa?

Antti Laaksonen [24.04.2004 17:58:41]

#

Tapoja on varmaan vaikka kuinka monta, tämmöinen toteutus tuli minulle ensimmäisenä mieleen:

<?php

// alkuperäinen taulukko
$taulu = array("testi", "esimerkki", "kokeilu", "esimerkki", "esimerkki");

// tallennetaan kunkin alkion määrä taulukkoon
foreach ($taulu as $alkio) {
    $maarat[$alkio]++;
}

// käydään läpi alkiot ja niiden määrät
foreach ($maarat as $alkio => $maara) {
    // jos alkioita on useampi kuin yksi...
    if ($maara > 1) {
        // ...lisätään tarpeellinen määrä alkioita uuteen tauluun
        for ($i = 1; $i <= $maara; $i++) {
            $uusi[] = $alkio;
        }
    }
}

// näytetään karsinnan tulos
print_r($uusi);

?>

Laajennus omiin tarkoituksiin lienee helppoa.

Wizard [24.04.2004 18:05:57]

#

Olen hieman hukassa tämän PHP taulukoiden kanssa... :(

Mutta:

Koodini näyttää taulukoiden luonnin kohdalta jotakuinkin tältä:

<?php

// SQL koodia jne.

$koirat[$laskuri][koira] = "$a_row[emo]";
$koirat[$laskuri][polvi] = "$polvi";

// LAJITELLAAN TAULUKKO KOIRAN REKISTERINUMERON MUKAAN

asort ( $koirat );

// Ja tässä kohtaa sitten pitäisi poistaa taulukosta ne arvot jotka eivät ole siinä vähintään kahta kertaa.

// SITTEN TULOSTETAAN TAULUKON SISÄLTÖ

// KÄYDÄÄN LÄPI KOKO TAULUKKO

foreach ( $koirat as $val )
{
foreach ( $val as $key=>$final )
{
print "$key: $final<br>";
}
}
?>

Lisäys: olen nyt selaillut yhden sun toisenkin palstan läpi suomeksi, englanniksi ja espanjaksi enkä vieläkään ole löytänyt vastausta tuohon ongelmaani. Olen todella yksin... :S

Wizard [24.04.2004 18:51:53]

#

Ja siis noita tupla-arvoja katsotaan pelkästään tuon koira sarakkeen mukaan...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta