php проверяет, содержит ли массив все значения массива из другого массива
$all = array
(
0 => 307,
1 => 157,
2 => 234,
3 => 200,
4 => 322,
5 => 324
);
$search_this = array
(
0 => 200,
1 => 234
);
Я хотел бы узнать, содержит ли $all все значения $search_this и возвращает true или false. есть идеи, пожалуйста?
5 ответов:
посмотреть array_intersect ().
$containsSearch = count(array_intersect($search_this, $all)) == count($search_this);
предыдущие ответы все делают больше работы, чем им нужно. Просто используйте array_diff. Это самый простой способ сделать это:
$containsAllValues = !array_diff($search_this, $all);
Это все, что вам нужно сделать.
немного короче с array_diff
$musthave = array('a','b'); $test1 = array('a','b','c'); $test2 = array('a','c'); $containsAllNeeded = 0 == count(array_diff($musthave, $test1)); // this is TRUE $containsAllNeeded = 0 == count(array_diff($musthave, $test2)); // this is FALSE