php - 如何在这种情况下取​​消设置数组元素

时间:2014-01-27 18:11:20

标签: php multidimensional-array unset

我的数组看起来像这样:

Array ( 
    [0] => Array ( 
        [value] => Array (
            [source] => vimeo
            [url] => https://vimeo.com/000000
        ) 
        [type] => videos 
    )
    [2] => Array ( 
        [value] => 62 
        [type] => images 
    ) 
)

我想使用 type =>取消设置数组 id 图片

我试过了:

$key = array_search('images',$slides); 
unset($slides[$key]); 

它只删除数组中的第一项!!!

更新

毕竟,我是这样做的:

foreach ( $slides as $slide => $value) {
    if ($display_mode == 'images' &&  $value['type'] == 'videos') {
        unset($slides[$slide]);
    } elseif ($display_mode == 'videos' &&  $value['type'] == 'images') {
        unset($slides[$slide]); 
    }  
}

谢谢。

2 个答案:

答案 0 :(得分:2)

foreach ($slides as $key => $slide) {
    if (in_array('images', $slide)) unset($slides[$key]);
}

答案 1 :(得分:2)

如果找不到array_search

$needle将返回false。 false在用作整数时转换为0。您可能需要考虑array_filter用例:

$array = array(...);

$array = array_filter($array, function($item) { return in_array('images', $item); });