Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Arrayn kaikkien avainten nimet

Sivun loppuun

pistemies [13.02.2012 17:40:26]

#

Tuli pikkuisen vastatuulta. Sellainen juttu on, että array sisältää samoja avainten nimiä. Pitäisi ne kaikki saada siitä keys-arrayhyn tähän tapaan:

<?php
  $array = array("title"=>"testi","text"=>"juttu1","text"=>"juttu2");

  $keys = array(0=>"title",1=>"text",2=>"text");
?>

Olen etsikellyt foreach-silmukasta esimekkejä mutta ei tunnu löytyvän. Ideoita?

Graphic [13.02.2012 17:45:17]

#

Vastaus on, että siihen kirjoittaa toimivan ratkaisun.

jpa [13.02.2012 17:48:13]

#

PHP:ssa ei voi olla arrayssa kahta arvoa samalla avaimella:

<?php
$array = array("title"=>"testi","text"=>"juttu1","text"=>"juttu2");
print_r($array);
?>
Array
(
    [title] => testi
    [text] => juttu2
)

ajv [13.02.2012 18:16:13]

#

array_keys() tekee tarvittavan tempun:
https://www.php.net/manual/en/function.array-keys.php

mutta kuten jpa mainitsi, ei samaa avainta voi taulukossa olla kahteen kertaan.

Petja [13.02.2012 19:11:59]

#

Anna avaimille yksilöllinen tunniste jotenkin tyyliin:
text_1, text_2, text_3

Käyttämällä säännöllistä lauseketta pystyt poistamaan loppumerkit (_1, _2, _3) päätteeksi. PHP:ssä on varmasti monia funktioita näille jutuille.

pistemies [13.02.2012 19:28:46]

#

Kiitos. En mä tätä vättämättä tarvii..... teen yhtä ohjelmaa joka käsittelee käyttäjän lisäämiä arrayita. Tuli vaan mieleen että tuollaisenkin array voi joku tehdä. Mutta eihän tollanen toimi missään, ei kannata siihen kuluttaa aikaa.

The Alchemist [13.02.2012 21:50:20]

#

pistemies kirjoitti:

Kiitos. En mä tätä vättämättä tarvii..... teen yhtä ohjelmaa joka käsittelee käyttäjän lisäämiä arrayita. Tuli vaan mieleen että tuollaisenkin array voi joku tehdä.

Ei voi, koska se ei ole mahdollista. PHP:n taulukko ei tue multi-inserttiä, eli yhdellä avaimella voi aina olla vain täsmälleen yksi arvo.

Metabolix [18.02.2012 15:42:49]

#

The Alchemist kirjoitti:

PHP:n taulukko ei tue multi-inserttiä, eli yhdellä avaimella voi aina olla vain täsmälleen yksi arvo.

Tulkki kuitenkin hyväksyy tuollaisen koodin. Arvoksi tulee aina viimeinen samalla avaimella määritelty arvo.

Petja kirjoitti:

Anna avaimille yksilöllinen tunniste jotenkin tyyliin:
text_1, text_2, text_3

Käytännöllisempää olisi vain käyttää sisäkkäisiä taulukoita.

Grez [18.02.2012 17:10:20]

#

PHP:n Array tuolla tavalla käytettynä onkin muiden kielien nimityksiä käyttäen Map (esim. Java) tai Dictionary (esim. C#) ja samalla myös se Array. Muissa kielissä yleensä Array:ssä on vain numeerinen indeksi.


Sivun alkuun

Vastaus

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

Tietoa sivustosta