Kako naj vrinem array v drug array?

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

3 3

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 :) –

Ful hvala to je to! –

2 2

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. :)

1 1
  1. varianta array_merge($prvi, $drugi)

  2. 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.

Nazadnje urejal SlimDeluxe (9. feb ob 09:39) - malo slep malo glup

0
$prvi = [
  'jabolka' => 'Jabolka',
  'hruske' => 'Hruške'
];

$drugi = [
  'borovnice' => 'Borovnice',
  'pomarance' => 'Pomaranče'
];

$drugi = $prvi + $drugi;
Objava umaknjena – Mark2 9. feb ob 10:58