PHP检查数组是否包含多个值

PHP检查数组是否包含多个值,php,arrays,Php,Arrays,我从数据库中获取了一个类似这样的数组: [0] => Array ( [permission_id] => 1 ) [1] => Array ( [permission_id] => 2 ) 我想检查这个数组是否包含一个函数的多个值。例如: function checkIfArrayContains($array) { ... } $array = array(1, 2); checkIfArrayContains($array

我从数据库中获取了一个类似这样的数组:

[0] => Array (
    [permission_id] => 1
    )
[1] => Array (
    [permission_id] => 2
    )
我想检查这个数组是否包含一个函数的多个值。例如:

function checkIfArrayContains($array)
{
    ...
}

$array = array(1, 2);
checkIfArrayContains($array); //Should return true

$array = array(2);
checkIfArrayContains($array); //Should return true

$array = array(1, 2, 3);
checkIfArrayContains($array); //Should return false

如何使用PHP实现这一点?

如果您只从数据库中获取一列,并且使用PDO,我建议您使用fetch模式
fetch::column
,以获得如下数组

$arr=[1,2];

然后,您只需使用检查值

如果您仅从数据库中获取一列,并且使用PDO,我建议您使用fetch模式
fetch::column
,以获得如下数组

$arr=[1,2];
然后,您可以简单地使用检查值

这里有一个建议:

$dbPermissions=[
['permission\u id'=>1],
['permission\u id'=>2],
];
函数hasufficientpermissions(数组$dbPermissions,数组$permissions):bool
{
$dbPermissionValues=array_column($dbPermissions,'permission_id');
返回空(数组_diff($permissions,$dbPermissionValues));
}
var_dump(hasufficientpermissions($dbPermissions[1,2]);
var_dump(hasufficientpermissions($dbPermissions,[2]));
var_dump(hasufficientpermissions($dbPermissions,[1,2,3]);
这将输出:

true
true
false
工作原理:

  • 将数据库数组减少到
    [1,2]
  • 在提供的第一个数组中查找在提供的第二个数组中不存在的值
  • 如果存在差异,则应返回
    false
    ——这是我们使用
    empty
    • 这里有一个建议:

      $dbPermissions=[
      ['permission\u id'=>1],
      ['permission\u id'=>2],
      ];
      函数hasufficientpermissions(数组$dbPermissions,数组$permissions):bool
      {
      $dbPermissionValues=array_column($dbPermissions,'permission_id');
      返回空(数组_diff($permissions,$dbPermissionValues));
      }
      var_dump(hasufficientpermissions($dbPermissions[1,2]);
      var_dump(hasufficientpermissions($dbPermissions,[2]));
      var_dump(hasufficientpermissions($dbPermissions,[1,2,3]);
      
      这将输出:

      true
      true
      false
      
      工作原理:

      • 将数据库数组减少到
        [1,2]
      • 在提供的第一个数组中查找在提供的第二个数组中不存在的值
      • 如果存在差异,则应返回
        false
        ——这是我们使用
        empty

      因此,如果您正在测试第一个数组中没有值的数组,那么基本上它会给出
      false
      。@El_Vanja是的,没错!因此,如果您正在测试第一个数组中不存在值的数组,它基本上会给出
      false
      。@El_Vanja是的,没错!您如何建议将
      in_array
      用于类似
      in_array([2],[1,2])
      ?您如何建议将
      in_array
      用于类似
      in_array([2],[1,2])