Pereiti prie turinio

Naujo elemento pridėjimas į PHP masyvą.


Rekomenduojami pranešimai

Sveiki, kokiu būdu galima prie PHP masyvo pridėti naują elementą?

Pvz masyvas yra:

Array
(
   [vardas] => Jonas
   [pavarde] => Jonaitis
)

ir noriu pridėti naują elementą/indeksą masyvui, kuris po pridėjimo atrodytų taip:

Array
(
   [vardas] => Jonas
   [pavarde] => Jonaitis
   [naujas_elementas] => 123456
)

 

Visi tie array_push nepadeda, nes juose neina nustatyti indekso reikšmės (masyvas['indeksas']), nu arba aišku nemoku naudotis gal. :D

Bandžiau tiesiog Masyvas['indeksas'] = reikšmė;, bet einant per masyvą su foreach rašo, kad tokio indekso nėra.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nesu tikras, kaip tu bandai prideti elementa, bet duosiu visus pavyzdzius.

 

1. Pridedame su masyvas[key] = value

$arr = array(
   'vardas' => 'Jonas',
   'pavarde' => 'Jonaitis'
);
$arr['naujas_elementas']=123456;

foreach rezultatas bus:

vardas|Jonas
pavarde|Jonaitis
naujas_elementas|123456

 

2. Perduodame masyva i funkcija ir pridedame elementa

$arr = array(
   'vardas' => 'Jonas',
   'pavarde' => 'Jonaitis'
);
function bad_add($arr,$k,$v){
   $arr[$k] = $v;
   // Kadangi PHP i funkcija elementai perduodami kaip copy, o ne reference, tad
   // $arr pakitimas matomas tik funkcijoje, jeigu noretume, kad jis butu matomas ir originaliame
   // masyve, reiktu sitoje funkcijoje:
   //    return $arr;
   // ir kvieciant:
   //    $arr = bad_add($arr,'naujas_elementas',123456);
}
bad_add($arr,'naujas_elementas',123456);

foreach rezultatas bus:

vardas|Jonas
pavarde|Jonaitis

 

3. Perduodame masyva kaip reference i funkcija ir pridedame elementa

$arr = array(
   'vardas' => 'Jonas',
   'pavarde' => 'Jonaitis'
);
function good_add(&$arr,$k,$v){
   $arr[$k] = $v;
   // Pridedant '&' prie elemento nurodome, kad norime ne kaip copy, bet kaip reference
}
good_add($arr,'naujas_elementas',123456);

foreach rezultatas bus:

vardas|Jonas
pavarde|Jonaitis
naujas_elementas|123456

Redagavo Ispirit
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Del array_push - jis prides reiksme i array gala, t.y. sekanti index po didziausio zinomo. Keletas variantu:

1. Kai tuscias array:

$a = array();
array_push($a, 1)
-----
Array([0] => 1)

 

2. Kai yra elementu:

2a. Elementu keys nera nurodyti:

$a = array(1,2);
array_push($a, 3);
-----
Array(    [0] => 1    [1] => 2    [2] => 3)

2b-1. Kai keys yra nurodyti ir jie yra skaiciai:

$a = array();
$a[0] = 1;
$a[5] = 2;
array_push($a, 3);
-----
Array(    [0] => 1    [5] => 2    [6] => 3)

Siuo atveju, maziausias zinomas key buvo 5, tad naujas duomuo tapo su key=6.

2b-2. Kai keys yra nurodyti ir jie yra zodziai:

$a = array();
$a['nulis'] = 1;
$a['penki'] = 2;
array_push($a, 3);
-----
Array(    [nulis] => 1    [penki] => 2    [0] => 3)

Kaip ir pirmame variante, array_push pridejo duomeni i key=0, nes visi kiti keys buvo zodines reiksmes.

Redagavo Imago
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėkoju jums, bėda buvo ne pačiame pridėjime, o tiesiog kažkas vėlėsi tarp kelių masyvų, todėl nesigaudavo, viską sutikrinau gražiai ir išėjo. Ačiū už info, pravers, nežinojau apie tą reference. :rolleyes:

 

Nera uz ka.

Redagavo Ispirit
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...