PHP简单数组操作,用于过滤常用键

时间:2012-03-06 12:24:33

标签: php arrays

我知道这是一项简单的任务,但我目前没有点击目前正在寻找合适的解决方案。

我有2个阵列

$array1=Array
(
    [302] => Array
        (
            [id] => 302
            [medical_id] => 55
            [medication_name] => disprin
            [medication_frequency] => 1
            [medication_status] => Stoped
            [users_id] => 106
            [update_date] => 2012-03-02 11:03:57
        )

)

$array2=Array
(
    [302] => Array
        (
            [medication_id] => 302
            [id] => 14
            [medical_id] => 55
            [medication_name] => disprin
            [medication_frequency] => 2
            [medication_status] => Stoped
            [users_id] => 106
            [update_date] => 2012-03-02 11:03:57
            [change_date] => 
        )

    [305] => Array
        (
            [medication_id] => 305
            [id] => 15
            [medical_id] => 57
            [medication_name] => disprin
            [medication_frequency] => 2
            [medication_status] => Continued
            [users_id] => 106
            [update_date] => 2012-03-02 11:02:46
            [change_date] => 
        )

)

我想要输出:

$outputarray=Array
(
      [302] => Array
        (
            [id] => 302
            [medical_id] => 55
            [medication_name] => disprin
            [medication_frequency] => 1
            [medication_status] => Stoped
            [users_id] => 106
            [update_date] => 2012-03-02 11:03:57
        )

    [305] => Array
        (
            [medication_id] => 305
            [id] => 15
            [medical_id] => 57
            [medication_name] => disprin
            [medication_frequency] => 2
            [medication_status] => Continued
            [users_id] => 106
            [update_date] => 2012-03-02 11:02:46
            [change_date] => 
        )

)

表示如果array1中存在相同的密钥,则从array2中的array1中获取它。

我尝试了一些PHP函数,例如array_mergearray_merge_recursive但没有获得所需的输出。

现在无法重新收集内存,请建议我使用任何PHP数组函数来解决这个问题。

3 个答案:

答案 0 :(得分:3)

这很简单,几乎是不道德的:

$outputArray = $array1 + $array2;

数组union(上图)执行您所描述的内容。使用array_merge也可以正常工作,但不能直接使用这样的输入,因为你的键是整数。

答案 1 :(得分:0)

答案 2 :(得分:0)

检查in_array()&使用array_push()的商店将是一个解决方案。