fork download
  1. <?php
  2.  
  3. $first = array(
  4. 'id' => 11,
  5. 'expire' => 'undefined',
  6. ),
  7. 'id' => 12,
  8. 'expire' => 'undefined',
  9. ),
  10. 'id' => 6,
  11. 'expire' => 8,
  12. ),
  13. 'id' => 10,
  14. 'expire' => 4,
  15. ),
  16. );
  17.  
  18. $second = array(
  19. 'id' => 6,
  20. 'realname' => 'to_es.gif',
  21. 'extension' => 'gif',
  22. 'filesize' => 57885,
  23. ),
  24. 'id' => 10,
  25. 'realname' => 'to_joomla_2_customor_view.gif',
  26. 'extension' => 'gif',
  27. 'filesize' => 77182,
  28. ),
  29. 'id' => 11,
  30. 'realname' => 'to_nl.gif',
  31. 'extension' => 'gif',
  32. 'filesize' => 10990,
  33. ),
  34. 'id' => 12,
  35. 'realname' => 'to_PL_1.gif',
  36. 'extension' => 'gif',
  37. 'filesize' => 52826,
  38. ),
  39. );
  40.  
  41. function my_array_merge($first,$second) {
  42. $new = array();
  43. foreach ($first as $f_item) {
  44. foreach ($second as $i => $s_item) {
  45. if ($f_item['id']===$s_item['id']) {
  46. $new[] = $f_item + $s_item;
  47. unset($second[$i]);
  48. break;
  49. }
  50. }
  51. }
  52. usort($new, function($a,$b) {
  53. return $a['id'] - $b['id'];
  54. });
  55. return $new;
  56. }
  57.  
  58. print_r(my_array_merge($first,$second));
  59.  
  60.  
  61.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [id] => 6
            [expire] => 8
            [realname] => to_es.gif
            [extension] => gif
            [filesize] => 57885
        )

    [1] => Array
        (
            [id] => 10
            [expire] => 4
            [realname] => to_joomla_2_customor_view.gif
            [extension] => gif
            [filesize] => 77182
        )

    [2] => Array
        (
            [id] => 11
            [expire] => undefined
            [realname] => to_nl.gif
            [extension] => gif
            [filesize] => 10990
        )

    [3] => Array
        (
            [id] => 12
            [expire] => undefined
            [realname] => to_PL_1.gif
            [extension] => gif
            [filesize] => 52826
        )

)