如何在PHP中清空属于关联数组的键的内容而不取消设置键


How to empty the content of a key belonging to an associative array without unsetting the key in PHP?

我有一个名为$aFilter的数组,如下所示(print_r($aFilter);的输出):

目前只显示一个内部数组元素,但它可以包含许多这样的元素。因此,考虑使用多个内部数组元素的情况。

Array(    
          [0] => Array(            
            [filter_id] => 84            
            [user_id] => 984            
            [item_id] => 244            
            [type_id] => user        
            [feed_type] => a:10:{s:5:'"pages'";i:1;s:5:'"photo'";i:1;s:4:'"link'";i:1;s:5:'"event'";i:1;s:6:
'"friend'";i:1;s:11:'"user_status'";i:1;s:4:'"poll'";i:1;s:4:'"quiz'";i:1;s:6:'"market'";i:1;s:4:'"apps
'";i:1;}            
            [get_noti] => 0            
            [time_stamp] => 1432271245        
          )
        )

我想要以下所需的数组:

Array(    
          [0] => Array(            
            [filter_id] => 84            
            [user_id] => 984            
            [item_id] => 244            
            [type_id] => user        
            [feed_type] =>             
            [get_noti] => 0            
            [time_stamp] => 1432271245        
          )
        )

所以我尝试以下代码,但它返回给我相同的数组在print_r($aFilter);

$aFilter['feed_type'] = '';

为什么?有人能帮我解决这个问题吗?

谢谢。

这样就可以了:

array_walk( $aFilter, function(&$var){
    $var['feed_type'] = '';
});

设置null为它-

$aFilter[0]['feed_type'] = null; // You can set '' this also but would prefer null

如果你有多个内部数组-

array_walk ( $aFilter, function (&$key) { $key["feed_type"] = null; } );

你可以这样做

foreach($aFilter as $aFilterRow)
{
    $aFilterRow['feed_type'] = "";
}

array_walk应该可以帮助您。试试这个:

function removeFeedType(&$arr)
{
    $arr['feed_type'] = null;
}
array_walk($aField, 'removeFeedType');

你的数组是二维数组

所以像下面的例子一样使用:

$aFilter[0]['feed_type'] = '';

foreach($aFilter as $aFilt)
{
    $aFilt['feed_type'] = '';
}