从数组中删除值-按值

时间:2018-11-04 16:51:34

标签: php

我有一组键和值(单词及其出现)。我想删除某些键(单词)。我把这些词放在另一个数组中。如何过滤出这些单词并创建一个新数组?

我已经尝试过-但它不会删除字符串:

<?php
$words = array(
    'string 1' => 4,
    'string 2' => 6,
    'string 3' => 3,
    'string 4' => 3,
    'string 4' => 9,
    'string 5' => 8,
    'string 6' => 2,
    'string 7' => 10,
    'string 8' => 1
);

$remove_words = array(
    'string 4',
    'string 2'
);

$new_array = array_diff($words, $remove_words);

print_r($new_array);
?>

我期望这样的输出:

$new_array = array(
    'string 1' => 4,
    'string 3' => 3,
    'string 5' => 8,
    'string 6' => 2,
    'string 7' => 10,
    'string 8' => 1
);

1 个答案:

答案 0 :(得分:3)

您可以使用array_flip()来将$remove_words的值更改为键,然后使用array_diff_key()。试试:

$new_array = array_diff_key($words, array_flip($remove_words));