在php中从数组中删除一些数据

在php中从数组中删除一些数据,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想在PHP中从数组中删除一些数据。以下是阵列: array(4) { [0]=> array(1) { ["image"]=> string(20) "w85YrKChBGTZ9fQS.jpg" } [1]=> array(1) { ["image"]=> string(20) "3buahEs6rRWFdYez.jpg" } [2]=> array(1) {

我想在PHP中从数组中删除一些数据。以下是阵列:

array(4) {
    [0]=> array(1) { ["image"]=> string(20) "w85YrKChBGTZ9fQS.jpg" }
    [1]=> array(1) { ["image"]=> string(20) "3buahEs6rRWFdYez.jpg" }
    [2]=> array(1) { ["image"]=> string(20) "gYPtDrx3sFzkVENB.jpg" }
    [3]=> array(1) { ["image"]=> string(20) "JE3rodDvs6521cFm.jpg" }
} 
以下是我的方法和删除的位置:

public function deleteImage(){
    foreach (getCarImages() as $array){
        //var_dump($array).'<br>';
        $index = array_search('w85YrKChBGTZ9fQS.jpg',$array);
        if($index !== FALSE){
            var_dump($index).'<br>';
            unset($array[$index]);
        }else{
            echo '<br>else here';
        }
    }
}
公共函数deleteImage(){
foreach(getCarImages()作为$array){
//变量转储($array)。“
”; $index=array_search('w85YrKChBGTZ9fQS.jpg',$array); 如果($index!==FALSE){ var_dump($index)。“
”; 未设置($array[$index]); }否则{ 回声“
这里的其他”; } } }
下面是
deleteImage()的结果

字符串(5)“图像”

否则

这里

否则

这里

否则

这里


我很困惑。如何从主阵列中删除嵌套阵列。

如果需要从阵列中删除整个子阵列,请使用函数:

public function deleteImage(){
    return array_filter(getCarImages(), function ($v) {
        return $v['image'] != 'w85YrKChBGTZ9fQS.jpg';
    });
}
更新:匿名函数不知道
$imageName
变量。您必须
使用
它:

public function deleteImage($imageName = null) 
{ 
    $myarray = array_filter(
        getCarImages(), 
        function ($v) use ($imageName) { return $v['image'] != $imageName; }
    );
}

您可以将图像转换为函数的引用

public function deleteImage(&$images){
    foreach ($images as $k => $array){
        //var_dump($array).'<br>';
        $index = array_search('w85YrKChBGTZ9fQS.jpg',$array);
        if($index !== FALSE){
            var_dump($index).'<br>';
            unset($images[$k]);
        }else{
            echo '<br>else here';
        }
    }
}
公共函数deleteImage(&$images){
foreach($k=>$array的图像){
//变量转储($array)。“
”; $index=array_search('w85YrKChBGTZ9fQS.jpg',$array); 如果($index!==FALSE){ var_dump($index)。“
”; 未设置($images[$k]); }否则{ 回声“
这里的其他”; } } }
尝试
如果($index)
。如果未找到项,则
array\u search
返回空。请发布
getCarImages()
函数。
deleteImage()
实际上要做什么?有返回值吗?文件函数?数据库查询?它工作正常,但我想设置动态值,比如这个公共函数deleteImage($imageName=null){$myarray=array_filter(getCarImages(),函数($v){return$v['image']!=$imageName;});但它给了我一个错误信息:未定义变量:ImageName非常感谢..!:)@Krisrowe我们可以公开要求投票。我应该在我最好的答案上这样做。@mickmackusa是的,你是对的。我接受你的建议。