Miten pystyisi PHP:llä tekemään arraysta käyttäjäystävällisen tulosteen?
Esim:
<?php $taulukko=array("minä1","minä2","minä3","minä4"); print_r ($taulukko); print $taulukko; echo $taulukko; ?>
ja tuloste on tämä print_r functiosta:
Array ( [0] => minä1 [1] => minä2 [2] => minä3 [3] => minä4 )
ja echo:sta ja print:stä tulee:
ArrayArray
Kumpikaan tulosteista ei ole oikein sellainen, jonka voisi antaa käyttäjälle, ellei halua kertoa, kuinka monimutkainen sivu oikein on, tai että sana Array on sydäntä lähellä :/
Voit vaikka käyttää implode()-funktiota.
mhm..
Miten sitä käytetään :D
Ei ainakaan näköjään toimi samalla lailla kuin print_r
Ei mitään sittenkään, ellei löydy järkevämpää tulostustapaa kuin
Tässä tapauksessa pitänee turvautua omaan apuun, ellei manuskan kommenteista satu löytymään valmista ratkaisua. Elikkä käyt taulukon läpi ja lisäät muotoilut. Esimerkkinä
<?php $str = ""; foreach ($arr as $key => $value) { $hr_str .= "[".$key."] => ".var_dump($value)."<br />\n"; } echo $str; ?>
Jos taulukko sisältää taulukoita niin kannattaa tehdä funktiosta rekursiivinen (rekursiivisuudesta on muistaakseni opas Ohjelmointiputkassa).
Dekooderi kirjoitti:
mhm..
Miten sitä käytetään :D
Ei ainakaan näköjään toimi samalla lailla kuin print_rEi mitään sittenkään, ellei löydy järkevämpää tulostustapaa kuin
echo
tai tavallinen print
voisi olla fiksumpi idea kuin print_r
, implode
kun kerran palauttaa ihan stringin eikä taulukkoa.
tsurigan esimerkki on kätevä, jos haluat printata myös taulukon keyt - eli esimerkissäsi 0, 1, 2, 3 - arvojen - minä1, minä2, minä3, minä4 - lisäksi.
Toki voit laittaa tuon print_r-funktion tulosteen pre-tagien väliin, jolloin tulostus on jo paljon selkeämpi.
tuolla pari käyttäjäystävällistä esimerkkiä:
Mulla tuo implode() toimi ainakin loistavasti, ja se ainakin näin alkuun ja asiaa enemmän tuntematta ( :D ) tuntuu selkeämmältä
Muuten... Tietääkö kukaan, miksei äsken väsäämäni funktio tulostu
<?php // Datafunktio function kaikki_functio() { // Lomakkeen luontifunktio function loma_functio() { echo " <form method='post' action='oliophp.php'> <input type='text' maxlenght='' lenght='30' name='lomake[]'> <input type='submit' value='Lähetä'> <br> "; }; //Lomakkeen datan vastaanottofunctio function vasta_functio() { $lomake=$_POST['lomake']; if ($lomake==null && $lomake=="") { echo "Et kirjoittanut mitään. Kirjoitappa jotain!"; } else { echo "Kirjoit: $lomake"; } } } ?> Tarkotus olis sitten tulostaa funktio näin <?php kaikki_functio() ?>
Mutta funktio ei vain tulostu...
Ei tuossa mitään suoraa PHP:n kieliopillista virhettä pitäisi olla, sillä kaikki muu tulostuu normaalisti (Mulla jos esim. puuttuu mistä tahansa paikasta jossa sitä tarvii ; -merkki, ei tulostu mitään muuta kuin valkoinen ikkuna)
Sinulla on vain 2 funktiota ton kaikki_function sisällä kannattaa ottaa ne pois.
Kokeilin, mutta en saanu tuota loma_function dataa liitettyä vasta_functioon
Dekooderi kirjoitti:
Mutta funktio ei vain tulostu...
Et kutsu funktioita! Sama kun olisi tärkeän sivun tiedostoarray, mutta sitä ei printattaisi.
return-funktio olisi ihan kiva sinun opetella.
:)
Tulossa seuraavassa jaksossa
(To be continue..)
:)
Aihe on jo aika vanha, joten et voi enää vastata siihen.