PHP比较两个(可能大小不同)的2D数组

时间:2012-02-25 13:21:52

标签: php multidimensional-array compare

我正在尝试比较PHP中的两个2​​D数组,并且我的头部受到所有递归的伤害 - 这对于习惯它的人来说可能是显而易见的。

我有两个看起来像这样的2D数组,名为$ submittedArray2D和$ dbArray:

{
    [0] => {
        [0] => 'name'
        [1] => 'sectors'
        [2] => 'address'
        [3] => 'url'
    }
    [1] => {
        [0] => 'name'
        [1] => 'sectors'
        [2] => 'address'
        [3] => 'url'
    }
    ...       
}

$ submittedArray2D来自用户输入,而$ dbArray保存数据库中已有的内容。

我想比较它们以查看$ submittedArray2D中是否更新了任何值,并相应地将这些更改保存到$ dbArray。

我还想将任何更改的地址传递给单独的地理编码函数,其结果将存储在另一个数据库字段中,其中键引用$ dbArray中的相同条目(因此$ geocode [4]指的是$ dbArray [4],例如)。

我已经尝试了一些foreach语句按顺序遍历数组,但如果其中一个条目已从数组中间删除,则会出现故障,因为这两个数组不再按顺序排列。我想知道每个数组条目的某种ID是否有意义,但我不知道从哪里开始。

任何想法或指示都会非常感激!

1 个答案:

答案 0 :(得分:0)

我最后通过在每个数组元素旁边存储一个唯一ID来管理它,也就是说可以循环检查比较器数组中是否存在该ID,然后检查地址是否已更改,如果是这样的话在单独的数组中进行更改(以及ID)以进行处理。