Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Moniulotteiset taulukot hukassa

raezel [07.07.2006 11:18:52]

#

Kaivan LDAP:ista tietoja, ja tarkoituksena olis hakea kaikki käyttäjät ja tulostaa tietty tieto, esimerkkinä otettakoon nimi. Haku onnistuu, mutta taulukosta tietojen pullauttaminen ei onnistu kun nuo moniulotteiset taulukot pyörivät vielä vähän tajuntani ulkopuolella.

Elikäs jos hakisin tiettyä käyttäjää niin olisi näin

$ldap["info"] = ldap_get_entries( $ldap["conn"], $ldap["result"] );
echo $ldap["info"][0]["displayname"][0];

Mutta entäs kun haetaan kaikki? Jonkinlaisella sisäkkäisellä foreach systeemillä vissiin, mutta en keksi että miten.

kayttaja-2791 [07.07.2006 11:45:14]

#

Jos moniulotteiset taulukot tuntuvat sekavilta niin laita hieman debug-koodia, print_r tulostaa ne nätisti:

$ldap["info"] = ldap_get_entries( $ldap["conn"], $ldap["result"] );
print_r($ldap["info"]);

raezel [07.07.2006 11:53:58]

#

Juu tuolla print_r_llä yritin sitä tutkia mutta en vaan millään saa aivojani venymään ymmärrykseen siitä minkämoisella foreach härdellillä tuosta saisi pelkän yhden tiedon alta kaikki.

Metabolix [07.07.2006 12:06:38]

#

En LDAPista mitään tiedä, ja selityksesikin jäi vähän auki, mutta tällainen tulisi ensiksi mieleen:

<?php
// for-silmukalla
echo "<ol>";
for ($i = 0; $i < count($ldap["info"]); ++$i) {
    echo "<li><ol>";
    for ($j = 0; $j < count($ldap["info"][$i]["displayname"]); ++$j) {
        echo "<li>", $ldap["info"][$i]["displayname"][$j], "</li>\n";
    }
    echo "</ol></li>";
}
echo "</ol>";

// foreach-silmukalla
echo "<ol>";
foreach ($ldap["info"] as $info) {
    echo "<li><ol>";
    # $info == $ldap["info"][$i]
    foreach ($info["displayname"] as $nimi) {
        # $nimi == $ldap["info"][$i]["displayname"][$j];
        echo "<li>$nimi</li>\n";
    }
    echo "</ol></li>";
}
echo "</ol>";
?>

raezel [07.07.2006 12:44:39]

#

Kiitoksia suuresti, tuolla onnistui.

Vastaus

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

Tietoa sivustosta