1

アクセス許可レベルのシステムがあるため、以前に選択したアクセス許可をアレイから削除する必要があります。例えば:

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"
  }
4

2 に答える 2

1

使えない理由はありますarray_diffか?

$my = array( 'read', 'write');
$all = array( 'read', 'write', 'update', 'delete');

var_dump( array_diff( $all, $my));

出力:

array(2) {
  [2]=>
  string(6) "update"
  [3]=>
  string(6) "delete"
}
于 2012-02-10T23:48:47.783 に答える