Miten saan lisättyä esim. seuraavan tiedon tuohon arrayn perään, ilman, että herjaa undefined index:
<?php $tieto = "100000"; $temppi = array( array(1, 10, 'jokin_kentta01'), array(12, 5, 'jokin_kentta02'), array(20, 5, 'jokin_kentta03'), array(30, 5, $tieto), );
Mod. lisäsi kooditagit
Yleensä:
$temppi[] = haluamasitieto;
Mulla ainakin toimii tuo sun koodi. Onkohan sulla jokin vanha php:n versio?
Kysyjä varmaan halusi, että tuollaisen samanlaisen arrayn perään?
Ensinnäkin, otat tuon array(30, 4, $tieto) hommelin perästä pilkun pois. Sitten lisäät taulukkoon kentän $temppi[] = array(30, 5, "tieto");, niin taulukosta tulee seuraava:
Macro: ei vaan kysyjä halusi tuon sun 'tieto' kentän tilalle arvon "100000", eli $tieto -muuttujan arvon.
Lebe80 kirjoitti:
Macro: ei vaan kysyjä halusi tuon sun 'tieto' kentän tilalle arvon "100000", eli $tieto -muuttujan arvon.
Juuri näin. Nuo jokin_kenttä tiedot tulevat tietokannasta ja pitäisi saada lisättyä tuollainen "ulkopuolinen" tieto tuohon arrayhin.
Jos tarkoitat, että PHP-koodia pitäisi muokata dynaamisesti, kannattaa kyllä harkita uudestaan.
Helpoin ratkaisu olisi tallentaa taulukko erilliseen tiedostoon vaikka serialisoituna. (Tämä ei ole sama kuin PHP:n lähdekoodin muoto! Tallenna nykyinen taulukkosi, niin näet.)
<?php # Lataus: $taulukko = unserialize(file_get_contents("taulukko.txt")); # Lisäys: $taulukko[] = array(30, 5, $tieto); # Tallennus: file_put_contents("taulukko.txt", serialize($taulukko));
Tiedostojen kanssa pitää muistaa, että jos useampi käyttäjä sattuu sivulle samaan aikaan, voi olla, että molemmat lataavat alkuperäisen tiedoston ja tallentavat oman versionsa tilalle, jolloin jälkimmäinen tallennus kirjoittaa ensimmäisen päälle ja vain toinen muutos näkyy.
Metabolix kirjoitti:
Jos tarkoitat, että PHP-koodia pitäisi muokata dynaamisesti, kannattaa kyllä harkita uudestaan.
Tuo "ulkopuolinen" tieto olisi vakio, joten tällä sen lienee saisi toimimaan, kiitos tästä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.