我有一堆阵列数据从$搜索和$数据变量是这样的:搜索多个数组值和计数的搜索结果
$data = array(
array(1, 2, 3),
array(1, 2, 3, 4, 7, 13)
);
$search = array(
array(1, 2),
array(1, 3),
array(6, 13),
array(7, 13)
);
$result = array();
我想要做的是,如果每一个对(实施例:1和2)从$搜索匹配与内部$数据变量的所有数据阵列的数据的它将计数多少数据是匹配(实施例:图1和2对$数据[匹配0]和$ data [1]所以结果必须是2)。然后将计数结果保存到变量$结果基于密钥$搜索。
这是我一直在寻找的结果:
$result = array(
0 => 2,
1 => 2,
2 => 0
3 => 1
);
这是我的代码:
for ($i=0; $i<count($search); $i++) {
for ($j=0; $j<count($data); $j++) {
if (count(array_intersect($search[$i], $data[$j])) > 1) {
array_push($result[$i], "1");
}
}
}
正如上面我的实验,如果我保存计数结果$结果变量它只是给了我一个警告:array_push()期望参数1是数组。但是,如果我尝试使用array_push到$搜索变量保存计数结果,它会给我造成这样的:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 1
[3] => 1
)
[1] => Array
(
[0] => 1
[1] => 3
[2] => 1
[3] => 1
)
[2] => Array
(
[0] => 6
[1] => 13
)
[3] => Array
(
[0] => 7
[1] => 13
[2] => 1
)
)
结果是接近我想要的东西,但还是不喜欢我找对于。我真的不知道该怎么做。
结果应该是'$结果=阵列( 0 => 2, 1 => 2, 2 => 1' 3 = > 1 );' –