Kako naj vrinem array v drug array?
5 naročnikov
5 naročnikov
Rad bi kombiniral dva arraya tako da enega vrinem nekam vmes v drugega ampak kakorkoli to naredim ni tako kot hočem.
Primer:
$prvi = [
'jabolka' => 'Jabolka',
'hruske' => 'Hruške'
];
$drugi = [
'borovnice' => 'Borovnice',
$prvi,
'pomarance' => 'Pomaranče'
];
print_r($drugi);
Dobim tole:
Array
(
[borovnice] => Borovnice
[0] => Array
(
[jabolka] => Jabolka
[hruske] => Hruške
)
[pomarance] => Pomaranče
)
Rad bi pa dobil tole:
Array
(
[borovnice] => Borovnice
[jabolka] => Jabolka
[hruske] => Hruške
[pomarance] => Pomaranče
)
Ali kdo ve kako bi to dosegel?
5 odgovorov
Da malo potestiram novi IM :)
arary_splice() bi deloval, če nebi imel asociativnega arraya.
Na stackoverflow sem nahitro našel eno funkcijo, ki obdrži key-e: https://3v4l.org/6uUhl
Ah, šele zdaj vidim, da je želel vriniti :) – SlimDeluxe
Ful hvala to je to! – Mark2
Blackmamba ti je dal super rešitev, ampak če imaš zadevo res takole hardcodano kot v primeru (verjetno ne?), še ena rešitev brez uvajanja nove funkcije.
$prvi = [
'jabolka' => 'Jabolka',
'hruske' => 'Hruške'
];
$drugi = array_merge(
[
'borovnice' => 'Borovnice'
],
$prvi,
[
'pomarance' => 'Pomaranče'
]
);
Mogoče pa pride prav, če ne tebi, pa komu drugemu. :)
varianta array_merge($prvi, $drugi)
-
varianta array "+" operator
s tem da...The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.
Edit:
Šele zdaj vidim, da si želel vriniti... Mislim, da si se tega lotil napačno. Če želiš doseči določen vrstni red artiklov, morda uporabi callback v uasort(), ki ohrani ključe v assoc. arrayu.
$prvi = [
'jabolka' => 'Jabolka',
'hruske' => 'Hruške'
];
$drugi = [
'borovnice' => 'Borovnice',
'pomarance' => 'Pomaranče'
];
$drugi = $prvi + $drugi;