PHP只保留特定的多维数组,如果element等于String

时间:2018-02-07 07:40:12

标签: php arrays multidimensional-array filter

我有一个带有两个内部多维数组的多维数组。我在最上面的数组中有多个数据,我想要做的只是过滤掉内部数组值中具有给定字符串的最高数组索引。

数组将是:

Array [Upper_1]
(
    [Inner_1] => {a => 111}, {b => 222}, {c => 333}
    [Inner_2] => {a => aaa}, {b => bbb}, {c => ccc}
)
Array [Upper_2] 
(
    [Inner_1] => {a => 777}, {b => 888}, {c => 999}
    [Inner_2] => {a => xxx}, {b => yyy}, {c => zzz}
)
given_string = yyy

因此,如果[Upper 2]数组的[Inner_2 {b}]与给定字符串具有匹配值,我想删除剩余的[Upper 1]数组索引。

到目前为止我没有工作代码,所以我提前为不发布代码而道歉。

1 个答案:

答案 0 :(得分:0)

function delete_col(&$array, $key) {
    return array_walk($array, function (&$v) use ($key) {
        unset($v[$key]);
    });
}

一旦您知道需要删除的密钥,就可以使用它。

或者如果您只保留一些元素,请创建一个新数组来保存它们。

至于找到要保留/删除的元素..你还需要帮助吗?