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.

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