无法使用php array_diff函数删除数组元素

无法使用php array_diff函数删除数组元素,php,arrays,wordpress,Php,Arrays,Wordpress,我在Wordpress选项表中添加了几个值,如下所示: $option_lists = get_option('optionLists'); $myOption = explode("," , $option_lists ); $remvOption = array('4' => 'Option3'); $new_option = array_diff($myOption, $remvOption); 选项名称=选项列表 选项_值=选项1、选项2、选项3、选项4 我

我在Wordpress选项表中添加了几个值,如下所示:

$option_lists = get_option('optionLists');
$myOption = explode("," , $option_lists );
$remvOption = array('4' => 'Option3');
$new_option = array_diff($myOption, $remvOption);
选项名称=选项列表

选项_值=选项1、选项2、选项3、选项4

我使用PHP检索这些值,如下所示:

$option_lists = get_option('optionLists');
$myOption = explode("," , $option_lists );
$remvOption = array('4' => 'Option3');
$new_option = array_diff($myOption, $remvOption);
因此,这里的
$myOption
是一个数组,如果我使用
print\r($myOption)
打印
$myOption
,它将显示如下结果:

$option_lists = get_option('optionLists');
$myOption = explode("," , $option_lists );
$remvOption = array('4' => 'Option3');
$new_option = array_diff($myOption, $remvOption);
数组([0]=>Option1[1]=>Option2[2]=>Option3[3]=>Option4)

现在,我想从上面的数组中删除一个数组元素,假设它是
Option3
。我是这样写的:

$option_lists = get_option('optionLists');
$myOption = explode("," , $option_lists );
$remvOption = array('4' => 'Option3');
$new_option = array_diff($myOption, $remvOption);
预期输出应如下所示:

$option_lists = get_option('optionLists');
$myOption = explode("," , $option_lists );
$remvOption = array('4' => 'Option3');
$new_option = array_diff($myOption, $remvOption);
数组([0]=>Option1[1]=>Option2[3]=>Option4)

但是,它仍然显示:

数组([0]=>Option1[1]=>Option2[2]=>Option3[3]=>Option4)


我可以知道我在哪里犯错吗?提前谢谢。

你的代码对我有用

但是不需要有项目的ID——只需将值本身放入即可

$myOption = array('Option1', 'Option2', 'Option3', 'Option4');
$remvOption = array('Option3');
$new_option = array_diff($myOption, $remvOption);
然后确保打印的变量正确:

print_r($new_option);
此代码为我提供了以下输出:

 Array ( [0] => Option1 [1] => Option2 [3] => Option4 )

array_diff()
不关心键,因此这并不能真正回答问题question@billyonecan-是的,你是对的,但是删除它也不会有什么坏处。在$myOption变量中,选项是动态出现的。我不知道我有多少选择。所以,我不能在数组中手动输入值。我刚刚使用explode函数在数组中创建了一个字符串(Option1、Option2、Option3、Option4)值。我只是无法做到这一点,当我创建阵列使用爆炸功能。手动操作是可能的,我知道这一点。谢谢你的帮助,但这不是答案。我只是把它作为演示来展示代码的工作原理。您不需要首先加载“myOption”,您可以在示例中这样做。我想说的是,你的代码是按照你发布的那样工作的。但是您还没有显示如何打印“新选项”-因此我猜您一定是做错了。错误在以下代码中:
$myOption=explode(“,”,$option\u list)双引号内的“,”后面将有一个空格。对我来说很好: