Moi!
Tietääkö kukaan miten PHP:llä saa kätevästi luotua moniulotteisen taulukon? Tuo PHP-oppaan taulukkoesimerkki ei oikein uponnut. Tarkoitus olisi siis löytää samanlainen funktio kuin VisualBasicissa on ARR(T) (ja sen perään voi laittaa vaikka 10 eri ulottuvuutta vaikka taulukkolaskennathan eivät tunne kuin kaksi, sarakkeet ja rivit.) Pitäisi saada kaksiulotteinen taulukko siten että taulukkoon ensin ladataan omiin sarakkeisiinsa laskennan reunaehtoja ja osaan sarakkeista sitten lasketaan ja päivitellään laskenta-algoritmin laskemia arvoja.
Eiköhän nämä PHP:n taulukot taivu ihan luonnostaan tuohon:
<?php $taulut = array( array( array( 1, 2 ), 3 )); $taulut[]=4; $taulut[0][]= array( 5 ); $taulut[0][0][0]=6; ?> <pre> <?php print_r( $taulut ); ?> </pre>
Eli pistät vaan sinne taulukon alkioiksi taulukoita tarpeen mukaan.
PHP:ssä taulukkoa ei tarvitse erikseen luoda, vaan sitä voi alkaa käyttää suoraan:
<?php $taulu[3][7] = 11; $taulu[5][2] = 8; $taulu[4][6] = $taulu[3][7] + $taulu[5][2]; echo $taulu[4][6]; // 19 ?>
FAQ/KVG (Kato V***u Googlesta) kymysys, voiko tuonne hakasulkujen (vaikka [4][6]) sisään viitata $muuttujalla? Kyseessä kun on silmukat jotka laskee, laskee ja laskee taulukon arvoja kunnes saavat mieleisen lopputuloksen.
cryo kirjoitti:
FAQ/KVG (Kato V***u Googlesta) kymysys, voiko tuonne hakasulkujen (vaikka [4][6]) sisään viitata $muuttujalla?
TRUE
Voisi kai aikalailla yleistäen sanoa että jos VisualBasic on tuttu, niin PHP:ssä voit tehdä taulukoilla kaikki samat jutut aivan yhtä helposti.
Antti Laaksonen kirjoitti:
PHP:ssä taulukkoa ei tarvitse erikseen luoda, vaan sitä voi alkaa käyttää suoraan
Ei koodia kommentoidakaan tarvitse. Tai nimetä muuttujia selkeästi.
array
-funktio on selkeä markkeri, joka kertoo että siinä kohtaa taulukko luodaan. Jos sen tilalla on suoraan taulukko-operaatio, joudut käymään aiemman koodin läpi tietääksesi onko kyse uudesta taulukosta vai ei.
Totta, tämä on ihan hyvä merkintä:
<?php $taulu = array(); // taulukon käyttäminen ?>
Antti Laaksonen kirjoitti:
PHP:ssä taulukkoa ei tarvitse erikseen luoda, vaan sitä voi alkaa käyttää suoraan
Jos kuitenkin palvelimella on register_globals käytössä, taulukon suora käyttäminen on tietoturvariski. Kuvitellaanpa seuraava koodi:
<?php $yllapitajat[] = "Antti Laaksonen"; $yllapitajat[] = "Metabolix"; if (in_array($nimi, $yllapitajat)) { $admin = true; } else { $admin = false; }
Hakkeri voi kirjoittaa seuraavan osoitteen:
sivu.php?yllapitajat[]=HakkerinTunnus
Jos register_globals on käytössä, hakkerin tunnus päätyykin tuohon samaan $yllapitajat-taulukkoon ja hän saa ylläpitäjän oikeudet.
Kaikki muuttujat kannattaa siis alustaa – ei pelkästään hyvän tavan vuoksi vaan myös virheiden ja jopa tietoturva-aukkojen välttämiseksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.