dongmoxin7111 2013-05-15 11:54
浏览 29
已采纳

数组搜索并在PHP中组合

I have 2 arrays. Is it possible to create output array and add keys/values from first to the second one? My arrays looks like:

The first:

 Array
    (
        [0] => Array
            (
                [id] => 11
                [expire] => undefined
            )

        [1] => Array
            (
                [id] => 12
                [expire] => undefined
            )

        [2] => Array
            (
                [id] => 6
                [expire] => 8
            )

        [3] => Array
            (
                [id] => 10
                [expire] => 4
            )
    )

The second:

Array
    (
        [0] => Array
            (
                [id] => 6
                [realname] => to_es.gif
                [extension] => gif
                [filesize] => 57885
            )

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

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

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

    )

How I'm getting the output array:

 Array
        (
            [0] => Array
                (
                    [id] => 6
                    [realname] => to_es.gif
                    [extension] => gif
                    [filesize] => 57885
                    [expire] => 8
                )

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

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

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

        )
  • 写回答

2条回答 默认 最新

  • duan7772 2013-05-15 12:23
    关注

    Try this:

    function my_array_merge($first,$second) {
        $new = array();
        foreach ($first as $f_item) {
            foreach ($second as $i => $s_item) {
                if ($f_item['id']===$s_item['id']) {
                    $new[] = $f_item + $s_item;
                    unset($second[$i]);
                    break;
                }
            }
        }
        usort($new, function($a,$b) {
            return $a['id'] - $b['id'];
        });
        return $new;
    }
    

    Example on Ideone: http://ideone.com/TQIIkH

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试