2

I have problem when try to merge two array in PHP. For example I have:

(
    [k] => Array
        (
            [aaaa] => 11
            [bbb] => 22
        )

)

And an array two follow:

(
    [k] => Array
        (
            [ccc] => 333
            [dddd] => 444
            [eeee] => 555
            [ffff] => 666
        )
)

I want to merge two arrays above as follows:

(
    [k] => Array
        (
            [aaaa] => 11
            [bbb] => 22
            [ccc] => 333
            [dddd] => 444
            [eeee] => 555
            [ffff] => 666
        )
)

When I try to array_push above as follows:

(
    [0] => Array
        (
            [k] => Array
                (
                    [aaaa] => 11
                    [bbb] => 22
                )

        )

    [1] => Array
    (
        [k] => Array
            (
                [ccc] => 333
                [dddd] => 444
                [eeee] => 555
                [ffff] => 666
            )
    )
)

So what can I will do, anyone?

Banana
  • 2,435
  • 7
  • 34
  • 60
pirpirim
  • 93
  • 2
  • 13
  • 1
    `array_push` does not merge arrays, you should loop over values of first array and `array_merge` it with corresponding values of second array – Pierre Feb 11 '18 at 17:38

3 Answers3

2
<?php

$arr1 = Array("ccc" => 333, "dddd" => 444, "eeee" => 555, "ffff" => 666);
$arr2 = Array("aaaa" => 11, "bbb" => 22, "ccc" => 333, "dddd" => 444, "eeee" => 555, "ffff" => 666);

Return as array

$arr3 = array_merge((array) $arr1, (array) $arr2);
print_r($arr3);

output

Array ( [ccc] => 333 [dddd] => 444 [eeee] => 555 [ffff] => 666 [aaaa] => 11 [bbb] => 22 )

Return as object

$arr3 = (object)array_merge((array) $arr1, (array) $arr2);
print_r($arr3);

output

stdClass Object ( [ccc] => 333 [dddd] => 444 [eeee] => 555 [ffff] => 666 [aaaa] => 11 [bbb] => 22 )
?>
Dipak
  • 2,248
  • 4
  • 22
  • 55
  • array(1) { ["k"]=> array(2) { ["aaaa"]=> string(2) "11" ["bbb"]=> string(2) "22" } } array(1) { ["k"]=> array(4) { ["ccc"]=> string(3) "333" ["dddd"]=> string(3) "444" ["eeee"]=> string(3) "555" ["ffff"]=> string(3) "666" } } – pirpirim Feb 11 '18 at 17:50
  • why should I check my friend I have no objection with your answer and even I did not comment anything on your answer. – Dipak Feb 11 '18 at 17:55
  • @NikolaGavric does any issue with my answer? – Dipak Feb 11 '18 at 17:56
0

Can you try array_merge($array1, $array2)

EDIT:

For multidimensional arrays you gotta loop through them like this:

$oneArr = [];
foreach($arrays as $arr) {
    array_merge($arr, $oneArr);
}
print_r($oneArr);
Nikola Gavric
  • 3,507
  • 1
  • 8
  • 16
  • does not matter – pirpirim Feb 11 '18 at 17:39
  • How do you mean does not matter? Thats how you merge 2 arrays into a single array – Nikola Gavric Feb 11 '18 at 17:40
  • array(1) { ["k"]=> array(2) { ["aaaa"]=> string(2) "11" ["bbb"]=> string(2) "22" } } array(1) { ["k"]=> array(4) { ["ccc"]=> string(3) "333" ["dddd"]=> string(3) "444" ["eeee"]=> string(3) "555" ["ffff"]=> string(3) "666" } } – pirpirim Feb 11 '18 at 17:50
  • Reminder, you need to assign the array_merge to a variable. https://www.php.net/manual/en/function.array-merge.php – Zectzozda May 30 '23 at 04:12
0

Thanks you so much I solved.

                                        <?php 
                                    $result = mysqli_query($link,"SELECT * FROM fiyatlar");
                                    $i=1;
                                    $veriler = array();
                                    while ($row = mysqli_fetch_array($result)) {

                                        $veriler = (unserialize($row['icerik']));

                                    foreach ($veriler['k'] as $key => $value) {
                                    ?>
pirpirim
  • 93
  • 2
  • 13