Php 如果值不为';t存在,请删除数组

Php 如果值不为';t存在,请删除数组,php,arrays,Php,Arrays,我有一个多维数组,其中包含以下格式的子数组: [0] Array => ( [first] => Foo [second] => Bar ) [1] Array => ( [first] => Foo [second] => Bar ) [2] Array => ( [first] => Foo [second]

我有一个多维数组,其中包含以下格式的子数组:

[0] Array =>
    (
        [first] => Foo
        [second] => Bar
    )
[1] Array =>
    (
        [first] => Foo
        [second] => Bar
    )
[2] Array =>
    (
        [first] => Foo
        [second] => bingo
    )
[3] Array =>
    (
        [first] => jackpot
        [second] => bar
    )
我想在整个数组中搜索“bingo”和“jackpot”,并删除所有不包含这些值的子数组(在上面的示例中,应删除数组0和数组1)


我知道如何使用array_search('bingo',$myarray)搜索数组,但不知道如何删除另外两个。有没有一个简单的方法来实现这一点?

这应该适合您:

(在这里,我只是过滤掉所有数组,其中包含
jackpot
bingo
元素,因此只有
jackpot
bingo
元素不在其中的数组才会保留。在此之后,我获取这些数组的所有键,并循环遍历它们,取消设置它们的数组)

编辑:

即使是一个更简单的解决方案,也可以这样做:

foreach($arr as $k => $v) {
    if(!in_array("jackpot", $v) && !in_array("bingo", $v))
        unset($arr[$k]);
}

1.在你的标题中,如果不存在,那么我有点困惑。删除前两个元素(0,1)你是说前两个数组还是什么?对不起,我已经修改了标题。。。。在这个例子中,我想删除数组0和数组1,因为这两个数组都不包含“bingo”或“jackpot”。那么您的模式是“jackpot”或“bingo”必须在数组中,否则您想删除它吗?(顺便说一句:在你的问题中添加你的尝试!无论它是否有效,只要添加你尝试过的内容,比如使用数组搜索等等)是的,完全正确,因此数组0和数组1不包含此模式,它们应该从父数组中删除。。。很抱歉,我对这一点非常陌生。非常感谢,但我似乎从ARRAY_FILTER_USE_tware中得到了一个错误:“注意:使用未定义的常量ARRAY_FILTER_USE_tware-假定‘ARRAY_FILTER_USE_tware’”@user2726041
echo phpversion()=?啊!!我用的是5.4。10@user2726041再次更新!只需再次刷新页面,并在“编辑”下完成所有操作!只需在它之后打印数组,就可以得到预期的结果
Array
(
    [2] => Array
        (
            [first] => Foo
            [second] => bingo
        )

    [3] => Array
        (
            [first] => jackpot
            [second] => bar
        )

)
foreach($arr as $k => $v) {
    if(!in_array("jackpot", $v) && !in_array("bingo", $v))
        unset($arr[$k]);
}