1

How do I join arrays? For instance, I have several separate arrays of error below,

$message = array();
$message[] = array('error1' => '<error elementid="file_rename" message="bla bla 1." />');
$message[] = array('error2' => '<error elementid="file_rename" message="bla bla 2." />');
print_r($message);

result,

Array (
    [0] => Array
        (
            [error1] => <error elementid="file_rename" message="bla bla 1." />
        )

    [1] => Array
        (
            [error2] => <error elementid="file_rename" message="bla bla 2." />
        )

)

But I actually want this,

Array (
    [error1] => <error elementid="file_rename" message="bla bla 1." />
    [error2] => <error elementid="file_rename" message="bla bla 2." />

)
Leigh
  • 12,620
  • 3
  • 37
  • 60
laukok
  • 47,545
  • 146
  • 388
  • 689
  • 1
    that's not several arrays that's one array, you just left it to php to give the key value –  Aug 11 '13 at 08:57
  • 2
    `$message[$key] = $value` – u_mulder Aug 11 '13 at 08:57
  • 1
    This has been [asked](http://stackoverflow.com/questions/6535444/combine-two-arrays) [several](http://stackoverflow.com/questions/13170230/php-combine-two-associative-arrays-into-one-array) [times](http://stackoverflow.com/questions/8561987/php-merge-two-arrays). – Hashem Qolami Aug 11 '13 at 09:13

3 Answers3

4
$message = array();
$message['error1'] =  '<error elementid="file_rename" message="bla bla 1." />';
$message['error2'] = '<error elementid="file_rename" message="bla bla 2." />';
print_r($message);
3

Or use array_merge:

$newArray = array_merge($arr1, arr2);
jysperm
  • 116
  • 3
2

If the keys don't overlap then you can safely join the arrays using the plus + operator.

$arr1 = array('error1' => '<error elementid="file_rename" message="bla bla 1." />');
$arr2 =  array('error2' => '<error elementid="file_rename" message="bla bla 2." />');

$message = $arr1 + $arr2;

Result:

Array (
    [error1] => <error elementid="file_rename" message="bla bla 1." />
    [error2] => <error elementid="file_rename" message="bla bla 2." />
)
vee
  • 36,569
  • 5
  • 65
  • 72