删除除一个数组项外的所有数组项


Removing all array items except one array item

我有两个数组结构。我想删除两个数组中的所有数组项,只保留一个数组项。我把代码写在下面。我该怎么做呢?

$array_one = array(
   'image-one' => 'image-one.jpg',
   'image-two' => 'image-two.jpg',
   'image-three' => 'image-three.jpg',
   'image-four' => 'image-four.jpg',
   'image-five' => 'image-five.jpg',
   'image-six' => 'image-six.jpg',
   'image-seven' => 'image-seven.jpg',
);
$array_two = array(
   'image-one' => 'image-one.jpg',
   'image-two' => 'image-two.jpg',
   'image-three' => 'image-three.jpg',
   'image-four' => 'image-four.jpg',
);

我想在两个数组中删除image-one.jpg,image-two.jpg,image-three.jpg,除了image-four.jpg,image-five.jpg,image-six.jpg,image-seven.jpg

Using unset:

unset($array['image-one']);
unset($array['image-two']);
unset($array['image-three']);

你也可以创建循环。

$todelete = array('image-one', 'image-two', 'image-three');
foreach($todelete as $del){
    unset($array[$del]);
}

按值删除:

$todelete = array('image-one.jpg', 'image-two.jpg', 'image-three.jpg');
foreach($todelete as $del){
  if(($key = array_search($del, $array)) !== false) {
    unset($array[$key]);
  }
}

您可以使用unset():

unset($array_one['image-one']);
unset($array_one['image-two']);
unset($array_one['image-three']);