【发布时间】:2020-11-25 16:46:48
【问题描述】:
我有一个这样的引用数组(数据量是动态的,大约3000条记录)
Array
(
[0] => Array
(
[DEPT] => FIN
[KEYCODE] => AAAAA
[TYPE] => 7
)
[1] => Array
(
[DEPT] => SALE
[KEYCODE] => BBBBB
[TYPE] => 16
)
[2] => Array
(
[DEPT] => SCM
[KEYCODE] => CCCCC
[TYPE] => 1
)
)
并使用“TYPE”的值搜索键“[9][7][16][1]”和“KEYCODE”的值在以下数组中搜索上述键的值。 (动态,约 5000 条记录)
Array
(
[0] => Array
(
[NAME] => Nick
[9] => GGGGG
[7] => AAAAA
[16] => MMMMM
[1] => KKKKK
)
[1] => Array
(
[NAME] => Chris
[9] => PPPPP
[7] => BBBBB
[16] => ZZZZZ
[1] => RRRRR
)
[2] => Array
(
[NAME] => Cathy
[9] => SSSSS
[7] => UUUUU
[16] => JJJJJ
[1] => AAAAA
)
[3] => Array
(
[NAME] => Allen
[9] => FFFFF
[7] => DDDDD
[16] => WWWWW
[1] => CCCCC
)
)
输出数组应该是
Array
(
[0] => Array
(
[NAME] => Chris
[9] => PPPPP
[7] => HHHHH
[16] => ZZZZZ
[1] => RRRRR
)
[1] => Array
(
[NAME] => Cathy
[9] => SSSSS
[7] => UUUUU
[16] => JJJJJ
[1] => XXXXX
)
)
“尼克”有项目 [7]=> AAAAA 和“艾伦”有项目 [1]=> CCCCC,所以从数据数组中删除。 我知道删除数组项的方法,但不知道如何通过其他数组的键/值对来实现比较和搜索。
【问题讨论】:
-
如果我没记错的话,如果搜索功能匹配[KEYCODE]和[TYPE],你想从第二个数组中删除项目??
-
是的,如果找到[KEYCODE]和[TYPE]的完全匹配项,删除[NAME] [9] [7] [16] [1]
-
您想根据
TYPE从第一个数组中找到KEYCODE,然后根据找到的KEYCODE删除第二个数组中的整条记录吗?同一个TYPE可以有多个KEYCODE值吗? -
[TYPE, KEYCODE] 在第一个数组是唯一的。但是在第二个数组中可能有相同的“TYPE”但不同的“KEYCODE”,我编辑了第二个数组以获得更接近真实数据的数组。
标签: php multidimensional-array