gpt4 book ai didi

php - 搜索多个数组值并统计搜索结果

转载 作者:可可西里 更新时间:2023-10-31 22:51:06 25 4
gpt4 key购买 nike

我有一堆来自 $search$data 变量的数组数据,如下所示:

$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();

我想要做的是,如果来自 $search 的每一对(例如:1 和 2) 数组数据与 $data 中的所有数据匹配 变量,它将计算有多少数据匹配 (例如:1 和 2 在 $data[0]$data[1] 上匹配> 所以结果必须是 2)。然后根据$search中的key将计数结果保存到变量$result中。

这是我正在寻找的结果:

$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");
}
}
}

在我上面的实验中,如果我将计数结果保存到 $result 变量,它只会给我一个警告:array_push() expects parameter 1 to be array。但是如果我尝试使用 array_push 将计数结果保存到 $search 变量,它会给我这样的结果:

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
)

)

结果接近我想要的,但仍然不是我想要的。我真的不知道该怎么做。

最佳答案

foreach ($search as $key => $value) {
$count = 0;
if(in_array($value[0], $data[0]) && in_array($value[1], $data[0])){
$count += 1;
}
if(in_array($value[0], $data[1]) && in_array($value[1], $data[1])){
$count += 1;
}
$result[$key] = $count;
}

关于php - 搜索多个数组值并统计搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44561474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com