Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP反转数组_diff_assoc(),删除重复值_Php_Array Difference - Fatal编程技术网

PHP反转数组_diff_assoc(),删除重复值

PHP反转数组_diff_assoc(),删除重复值,php,array-difference,Php,Array Difference,我有更高的权限级别系统,因此我需要从阵列中删除我的previos选定权限。例如: My permissions: read, write All permissions: read, write, update, delete I need return: update, delete 问题:array_diff_assoc()比较精确的键,[0]=[0],我需要比较值而不是键,并返回所有权限,但不包括我以前选择的权限,而不是删除的值 res['all_withou_pre_select

我有更高的权限级别系统,因此我需要从阵列中删除我的previos选定权限。例如:

My permissions:  read, write
All permissions: read, write, update, delete
I need return:   update, delete
问题:
array_diff_assoc
()比较精确的键,[0]=[0],我需要比较值而不是键,并返回所有权限,但不包括我以前选择的权限,而不是删除的值

res['all_withou_pre_selected_permissions'] = array_diff_assoc($all_permissions,$res['my_permissions']);
print_r($res['all_withou_pre_selected_permissions']);
我的数组和返回

My permissions
array(2) {
  [0]=>
  array(6) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(9) "Adicionar"
    [1]=>
    string(9) "Adicionar"
    ["Nome"]=>
    string(3) "kin"
    [2]=>
    string(3) "kin"
  }
  [1]=>
  array(6) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(7) "Excluir"
    [1]=>
    string(7) "Excluir"
    ["Nome"]=>
    string(3) "kin"
    [2]=>
    string(3) "kin"
  }
}

All Permissions
array(8) {
  [0]=>
  array(4) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(9) "Adicionar"
    [1]=>
    string(9) "Adicionar"
  }
  [1]=>
  array(4) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(6) "Editar"
    [1]=>
    string(6) "Editar"
  }
  [2]=>
  array(4) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(7) "Excluir"
    [1]=>
    string(7) "Excluir"
  }
  [3]=>
  array(4) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(3) "Ler"
    [1]=>
    string(3) "Ler"
  }

Return of PHP code

array(6) {
  [2]=>
  array(4) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(7) "Excluir"
    [1]=>
    string(7) "Excluir"
  }
  [3]=>
  array(4) {
    ["Modulo"]=>
    string(15) "Administradores"
    [0]=>
    string(15) "Administradores"
    ["Tipo"]=>
    string(3) "Ler"
    [1]=>
    string(3) "Ler"
  }

有什么原因不能使用吗

输出:

array(2) {
  [2]=>
  string(6) "update"
  [3]=>
  string(6) "delete"
}

有什么原因不能使用吗

输出:

array(2) {
  [2]=>
  string(6) "update"
  [3]=>
  string(6) "delete"
}
两个数组的并集:

$union = array_unique( array_merge( $arr1, $arr2 ) );
其中:

区别在于:

对称差:

另一种可能是写一篇简单的文章

由于Google SERP中没有其他问题,我将对这个老问题给出一个答案。

两个数组的并集:

$union = array_unique( array_merge( $arr1, $arr2 ) );
其中:

区别在于:

对称差:

另一种可能是写一篇简单的文章

由于Google SERPs中没有其他问题,我将对这个老问题留下一个答案。

错误尝试这个:错误尝试这个:
$diff = array_diff( $arr1, $arr2 );
$sym_diff = array_merge( array_diff( $arr1, $arr2 ), array_diff( $arr2, $arr1 ) );