Php 检查所有数组值是否存在于另一个数组值中

Php 检查所有数组值是否存在于另一个数组值中,php,arrays,Php,Arrays,我有一个要与另一个数组匹配的数组,第一个数组中的所有值都必须在第二个数组中,因此如果第二个数组长度小于第一个数组长度,它将自动变为false。例如: $products = array("soap","milk","book"); $availableProducts = array("soap","tea","oil","milk","book"); $this->matchArray($products,$availableProducts); //return true becaus

我有一个要与另一个数组匹配的数组,第一个数组中的所有值都必须在第二个数组中,因此如果第二个数组长度小于第一个数组长度,它将自动变为false。例如:

$products = array("soap","milk","book");
$availableProducts = array("soap","tea","oil","milk","book");
$this->matchArray($products,$availableProducts); //return true because  all $products value inside $availableProducts value too

$products = array("soap","milk","book");
$availableProducts = array("milk","tea","book","soap","oil");
$this->matchArray($products,$availableProducts); //return true because  all $products value inside $availableProducts value too

$products = array("soap","milk","book");
$availableProducts = array("soap","tea","oil","salt","paper");
$this->matchArray($products,$availableProducts); //return false because  only one of $products value inside $availableProducts value

$products = array("soap","milk","book");
$availableProducts = array("milk","book");
$this->matchArray($products,$availableProducts); //return false because  only two of $products value inside $availableProducts value 

PHP提供了广泛的功能

您正在寻找,根据文档:

将array1与一个或多个其他数组进行比较,并返回array1中不存在于任何其他数组中的值

你可以用

array_diff-计算数组的差异

将数组1与一个或多个其他数组进行比较,并返回 数组1中不存在于任何其他数组中的值


使用,因此如果我要比较的第二个数组长度小于第一个数组,那么$difference也将大于0?@milyes您是对的
<?php

$products = array("soap","milk","book");
$availableProducts = array("soap","tea","oil","milk","book");

$difference = array_diff($products,$availableProducts);

if(count($difference)==0){

  echo "all products availabale";
}else{

  echo implode(',',$difference) ." are not available";
}