» »

php dodajanje ključ array

php dodajanje ključ array

zacetnik11 ::

Pozdravljeni,

imam eno mogoče trivialno vprašanje, vednar ne najdem rešitve ;-)
Imam array in v pogoju želim dodat ključ če ta obstaja.
$zaposelni[] = array(
'Ime'   =>$podatki->ime,
'Priimek' =>$podatki->priimek,
if($podatki->datumRojstva != '')
'Datum Rojstva' => $podatki->datumRojstva
);

Kako rešit da lahko po želji dodajam kjuče?

Hvala za pomoč.

hobbit ::

Znotraj arraya ne moreš pisati extra kode(če pa jo že lahko je to extra grdo.)

lahko pa rečeš:
$zaposleni = (array)$zaposleni;
if (isset($podatki['datumRojstva'])) {
$zaposelni['datumRojstva'] = $podatki['datumRojstva'];
}

verjetno pa obstaja tudi kakšna krajša/lepša rešitev. google it.

Moraš pa poznati razliko "dodat ključ če ta obstaja." ali pa "dodat ključ, če ima ta ključ nastavljeno vrednost".

Zgodovina sprememb…

  • spremenil: hobbit ()

zacetnik11 ::

To vem da ne moreš, napisal sem samo tako da se vidi kaj želim.
Nisem pa našel nobene rešitve, zato sem se še obrnil na slo-tech.

Tako kot si napisal, želim dodat ključ če ima ta vrednost ;-)

b3D_950 ::

če poguglaš za: php array dynamic add
Zdaj ko je mir, jemo samo krompir.

Stari89 ::

Uporabi array_push().
$zaposelni = array(
    'Ime' => $podatki->ime,
    'Priimek' => $podatki->priimek
);
if(!empty($podatki->datumRojstva)) { // !empty($x) je veliko lepše od $x != ""
    array_push($zaposleni, 'Datum rojstva' => $podatki->datumRojstva);
}

Namesto array_push bi morda šlo celo tole:
$zaposleni[] = 'Datum rojstva' => $podatki->datumRojstva;

Vem, da je banalen primer, ampak pri kodiranju uporabljaj angleščino tako za imena spremenljivk, kot parametrov. Slovenščina (ali katerikoli drug jezik) naj bo samo v fajlih za prevode in v podatkih na bazi. Nikoli v kodi. Še v komentarjih raje ne.

LP

zacetnik11 ::

@Stari89 hvala za pomoč, vendar sem imel to že narejeno in ni prav, ker s array_push()dodam novo polje v array in ne polju nov zapis.
Tvoja rešitev:
0:	
Ime	"test1"
Priimek	"test1_p"
1:	
Datum rojstva	"2009-09-19"
2:
Ime	"test2"
Priimek	"test2_p"
3:
Datum rojstva	"2009-04-16"

Jaz bi pa rad rešil, če datum obstaja ga vnese, če ne obstaja ga ne vnese v array
0:	
Ime	"test1"
Priimek	"test1_p"
Datum rojstva	"2009-09-19"
1:
Ime	"test2"
Priimek	"test2_p"
2:
Ime	"test3"
Priimek	"test3_p"
Datum rojstva	"2015-05-22"

DeeJay ::

Zakaj pa ključ ne pustiš prazen, če ni podatka? Tko maš vsaj kompleten array identičen in pri izpisu samo preverjaš ali ima ključ vrednost ali ne. Drugače boš mogu dodatno preverjat še, če ta ključ sploh obstaja oziroma boš mel en kup "index 'Datum rojstva' does not exist".

Če pa res rabiš to kar si napisal, potem pa nekaj takega:
Nisi napisal od kod dobivaš podatke v $podatki in v kakšni obliki so.


$zaposleni = array(
    'Ime' => $podatki->ime,
    'Priimek' => $podatki->priimek
);
if(!empty($podatki->datumRojstva)) {
    $zaposleni['Datum rojstva'] => $podatki->datumRojstva;
}

$vsi_zaposleni[] = $zaposleni; // v $vsi_zaposleni so že prejšnji zaposleni in dodaš zraven trenutnega, ki si ga preveril

Zgodovina sprememb…

  • spremenil: DeeJay ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Evidenca oseb

Oddelek: Programiranje
7980 (665) DaMachk
»

metoda #get, #set ---> c#

Oddelek: Programiranje
12981 (865) fokz8
»

[C#] današnji datum in rojsni datum

Oddelek: Programiranje
373945 (3432) vojko20
»

[Access 2007]

Oddelek: Programiranje
132330 (1930) urosz
»

Še malo teženja o php

Oddelek: Programiranje
461577 (1166) rc-car

Več podobnih tem