Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP数组中删除值_Php_Arrays - Fatal编程技术网

从PHP数组中删除值

从PHP数组中删除值,php,arrays,Php,Arrays,使用PHP,我试图根据元素的值从数组中删除元素 例如,使用以下数组: Array ( [671] => Array ( [0] => 1 [1] => 100 [2] => 1000 ) [900] => Array ( [0] => 15 [1] => 88

使用PHP,我试图根据元素的值从数组中删除元素

例如,使用以下数组:

Array
(
    [671] => Array
        (
            [0] => 1
            [1] => 100
            [2] => 1000
        )
    [900] => Array
        (
            [0] => 15
            [1] => 88
        }
)
我希望能够在要删除的内部数组中指定on的值。例如,如果我指定100,结果数组将如下所示:

Array
(
    [671] => Array
        (
            [0] => 1
            [2] => 1000
        )
    [900] => Array
        (
            [0] => 15
            [1] => 88
        }
)
我的第一个想法是使用foreach在数组中循环,并在找到时取消设置“冒犯”值,但这似乎并没有引用原始数组,只是引用了创建的循环变量

谢谢。

两个想法:

foreach($array as $id => $data){
    foreach($data as $index => $offending_val){
         if($offending_val === 100){
            unset($array[$id][$index]);
         }
    }
}
您可以尝试使用array_filter,传入一个回调函数,如果该值是要取消设置的值,该函数将返回false。使用上面的示例:

$new\u internal\u array=array\u filter($internal\u array,$callback\u返回\u false\u如果\u值为\u 100)

如果您想做一些更详细的工作,可以探索SPL的ArrayIterator类,特别是offsetUnset()方法。

您可以使用:

array_walk($your_array, function(&$sub, $key, $remove_value) {
    $sub = array_diff($sub, array($remove_value));
}, 100);