【问题标题】:Check if all array value exist in another array value [duplicate]检查所有数组值是否存在于另一个数组值中[重复]
【发布时间】:2018-04-17 13:17:12
【问题描述】:

我有一个要与另一个数组匹配的数组,第一个数组中的所有值都必须在第二个数组中,因此如果第二个数组长度小于第一个数组长度,它会自动变为 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 arrays


【解决方案1】:

您可以使用array_diff()

array_diff — 计算数组的差异

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

<?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";
}

输出:-

  1. https://eval.in/989587

  2. https://eval.in/989588

  3. https://eval.in/989593

  4. https://eval.in/989596

【讨论】:

  • 所以如果我要比较的第二个数组长度小于第一个数组,那么 $difference 也将 > 0 ?
  • @mileven 是的,你是对的
【解决方案2】:

PHP 提供了广泛的array functions

您正在寻找array_diff(),根据文档:

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

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多