在php上删除已经存在的数组[关闭]

How can i distinct an array with this format?

Raw array:

Dump => array(3) {
  [1] => string(9) "Dashboard"
  ["Pages"] => array(2) {
    [19] => string(25) "Menu1"
    [10022] => string(21) "Menu2"
  }
  ["Users"] => array(5) {
    [19] => string(25) "Menu1"
    [10022] => string(21) "Menu2"
    [10019] => string(11) "Menu3"
    [10020] => string(12) "Menu4"
    [10021] => string(18) "Menu5"
  }
}

I want to delete key 19 and 10022 dynamically because its already existed on key pages.

Expected Result:

Dump => array(3) {
  [1] => string(9) "Dashboard"
  ["Pages"] => array(2) {
    [19] => string(25) "Menu1"
    [10022] => string(21) "Menu2"
  }
  ["Users"] => array(5) {
    [10019] => string(11) "Menu3"
    [10020] => string(12) "Menu4"
    [10021] => string(18) "Menu5"
  }
}

try this one:

$array = ....;
foreach ($array['Pages'] as $k => $v)
    if (isset($array['Users'][$k]))
        unset($array['Users'][$k]);

You can use array_diff_key function:

$Array = array(
    1 => 'Dashboard',
    'Pages' => array(
        19 => 'Menu1',
        10022 => 'Menu2'
    ),
    'Users' => array(
        19 => 'Menu1',
        10022 => 'Menu2',
        10019 => 'Menu3',
        10020 => 'Menu4',
        10021 => 'Menu5'
    )
);

$Array['Users'] = array_diff_key($Array['Users'], $Array['Pages']);

var_dump($Array);

Try this ...

   $array =  array(1=>"Dashboard",
      "Pages"=>array(
        19 =>"Menu1"
        10022=>"Menu2"
      ),
      "Users" => array(10019=>"Menu3"
        10020 =>"Menu4"
        10020=>"Menu5"))
    foreach($array["Pages"] as $k=>$v){
        if(array_key_exists($k, $array["Users"])){
           unset($array["Users"][$k]);
        }
    }