php:具有动态数组数的array_uintersect

时间:2018-08-09 15:12:13

标签: php dynamic-arrays

我有一个foreach循环,该循环返回可变数量的数组。

我需要使用自定义函数在它们之间运行array_uintersect来查找公用元素,但是array_uintersect仅接受3个参数(2个数组和该函数)。

这就是我现在拥有的:

$all_freaktag_favorites = array();

foreach ($serie_preferite as $serie_preferita) {
    $preferite_elements = pods('category', $serie_preferita['term_id']);
    $freaktag_preferita = $preferite_elements->field('freaktag');

    $all_freaktag_favorites[] = $freaktag_preferita;
}

function comparaFreaktag($tag1, $tag2) {
    return strcmp($tag1['term_id'], $tag2['term_id']);
};

$common_freaktag_between_favorites = array_uintersect(
    $all_freaktag_favorites[0],
    $all_freaktag_favorites[1],
    'comparaFreaktag'
);

这正确地向我返回了循环中前两个数组之间的交集,但是我不知道如何使用未定义数量的数组来实现这一点。

谢谢!

1 个答案:

答案 0 :(得分:0)

将所有数组放入父数组中,并使用传播运算符:

$all = [[/** xxx */, [/** xxx */], [/** xxx */], ...];

$all[] = 'comparaFreaktag';

$common_freaktag_between_favorites = array_uintersect(...$all);