0

我有两个多维数组,我想使用 PHP array_intersect 函数相交,但在为此执行输出之前,它还必须只替换数组的一个元素。

例子:

$array1 = Array(
Array(37768201, 273, Array(602, 603, 604, 605, 606), 0),
Array(37483503, 473, Array(604, 605, 606), 0),
Array(37500944, 332, Array(602, 603), 0)
);

$array2 = Array(
Array(37768201, 273, Array(602, 603, 604, 605, 606), 13852),
Array(37483503, 473, Array(603, 604, 605, 606), 13853),
Array(37500944, 332, Array(602, 603, 604, 605), 13854),
Array(37483903, 152, Array(602, 603, 604, 605, 606), 13855),
Array(37483703, 175, Array(602, 603, 604, 605, 606), 13856)
);

array_intersect 结果:

$array1 = Array(
Array(37768201, 273, Array(602, 603, 604, 605, 606), 0),
Array(37483503, 473, Array(604, 605, 606), 0),
Array(37500944, 332, Array(602, 603), 0)
);

预期结果:

$array1 = Array(
Array(37768201, 273, Array(602, 603, 604, 605, 606), 13852),
Array(37483503, 473, Array(604, 605, 606), 13853),
Array(37500944, 332, Array(602, 603), 13854)
);

这可以使用 array_uintersect 来完成吗?

4

1 回答 1

0

调用后可以添加一小段代码array_intersect()

对于您的示例:

foreach ($array1 as $key => $values)
  $array1[$key][3] = 13852;

尽管如果您说哪些数据是可变的,那会容易得多。例如,数字13852似乎在每次执行和(可能)在每个子数组($array2[0][3] != $array2[1][3])中都是可变的。那么该代码将无效,您应该改用它:

foreach ($array1 as $key => $values)
  $array1[$key][3] = $array2[$key][3];

还有更多可能的情况。

于 2013-04-07T15:33:03.810 回答