Количество номеров группового массива в массиве в php

0

Я хочу подсчитать количество группового массива в массиве. пример

$arr1 = [61,41,41,61,89,90]
$arr2 = [61,41]
$result = 2    //found 61,41 in $arr1  2 time;

Или пример

$arr1 = [89,61,41,41,61,90]
$arr2 = [61,41,89]
$result = 1    //found 61,41,89 in $arr1  1 time;

Как написать код или концепцию?

  • 0
    Второй приведенный вами пример не имеет никакого смысла. Не могли бы вы уточнить немного больше?
  • 0
    Я бы превзошел второй результат 3
Показать ещё 1 комментарий
Теги:
arrays

2 ответа

1
Лучший ответ

Я надеюсь, что это поможет вам..

$arr1 = array(61,41,41,61,89,90);
$arr2 = array(61,41);

$count = array_count_values($arr1); //count values from arr1

$result = array();
foreach($arr2 as $row) {
    $result[$row] = array_key_exists($row, $count) ? $count[$row] : 0;
}

echo min($result);

$ arr2 = [61,41] выход: 2

$ arr2 = [61,41,89] выход: 1

  • 1
    Вау, спасибо. Замечательно ^^
1
$arr1 = array(61,41,41,61,89,90);
$arr2 = array(61,41);

$occurrences = min(
    array_count_values(array_intersect($arr1, $arr2)) + array_fill_keys($arr2, 0)
);

Возможно, несколько неясное решение, но одно выражение. Возвращает число, которое весь набор $arr2 встречается в $arr1.

  • 0
    Спасибо за ответ. Я думаю, что ответ тоже хороший.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню