我正在努力理解哪种数组函数最适合我的特定情况。其他人似乎有很多困惑,我也读过几篇文章。
我有两个具有不同结构的数组,但都包含一个我想比较的 ID 字段。
数组一是我的素材数组...它看起来像:
array(1) {
[0]=> array(5) {
["ID"]=> string(3) "172"
["Name"]=> string(26) "172_535A-New_Product-1.mp4"
["Projects_ID"]=> string(2) "25"
["FileName_Display"]=> string(18) "535A-New_Product-1"
["FileName_Real"]=> string(22) "172_535A-New_Product-1"}}
这个数组中的 ID 就是我想要比较的。另一个数组包含更多信息,因此结构完全不同,但它也具有列为 Footage_ID 的相同 ID。它看起来像:
array(1) {
[0]=> array(16) {
["ID"]=> string(3) "168"
["Unique_Array_ID"]=> string(1) "0"
["HTML_ID"]=> string(15) "Item_0_0_34_A_0"
["HTML_Selector"]=> string(10) "0_0_34_A_0"
["Frame_Selector"]=> string(8) "0_0_34_A"
["FootageArrayKey"]=> string(1) "0"
["Timeline"]=> string(1) "0"
["Tab"]=> string(1) "0"
["inPoint"]=> string(12) "5.7919480000"
["outPoint"]=> string(13) "43.2125420000"
["Duration"]=> string(13) "45.1200000000"
["Section"]=> string(1) "1"
["Green_Screen"]=> string(1) "1"
["Place_in_Timeline"]=> string(1) "0"
["Footage_ID"]=> string(3) "172"
["Projects_ID"]=> string(2) "25"
}}
对于这两个数组,数组 #2 (172) 中的 Footage_ID 与数组 #1 (172) 中的 ID 相匹配。因此我不需要数组 #1 中的条目。我只查找数组 #2 中未列出的 ID。这将是我的返回数组。
首先,由于它们是多维的,所以我在比较它们时有点迷失。有没有像 array_diff 这样的内置函数?据我所知 array_diff 仅用于一维数组比较。数组是不同结构的事实可能意义不大,但对我来说,这似乎也可能是某些函数的问题。
我似乎需要的函数接受三个值($array1、$array2、$key_to_compare_by)。然后它将返回 array1 中未找到 $key_to_compare 的条目(数组)。我还没有看到特别讨论过这种情况,想知道是否有人对如何实现这一目标有建议。
我看到人们在谈论过滤、映射和其他功能,但有很多不同的方法,但似乎没有一种方法正是我目前所面临的。我最大的误解是我确实需要了解更多有关过滤等的知识。关于这个问题的任何建议都会有所帮助。谢谢!