【发布时间】:2017-11-27 03:16:56
【问题描述】:
** 我已经编辑了这个以展示我如何使用 array_search 让我的代码工作
我有一个数组,$arr1,有 5 列:
key id name style age whim
0 14 bob big 33 no
1 72 jill big 22 yes
2 39 sue yes 111 yes
3 994 lucy small 23 no
4 15 sis med 24 no
5 16 maj med 87 yes
6 879 Ike larg 56 no
7 286 Jed big 23 yes
此数组位于缓存中,而不是数据库中。
然后我有一个带有 id 值列表的第二个数组 -
$arr2 = (0=>14, 1=>72, 2=>8790)
如何过滤$arr1,使其仅返回具有$arr2 中id 值的行?
我的代码如下所示:
$arr1 = new CachedStuff(); // get cache
$resultingArray = []; // create an empty array to hold rows
$filter_function = function ($row) use ($arr2) {
return (array_search($row['id'], $arr2));
};
$resultingArrayIDs = $arr1->GetIds($filter_function, $resultingArray);
这给了我两个输出:$resultingArray 和 $resultingArrayIDs,它们都代表 $arr1 和 $arr2 的交集。
【问题讨论】:
标签: php arrays filter array-filter