Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Multidimensional Array_Associative Array_Key Value - Fatal编程技术网

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

如何在PHP中清空属于关联数组的键的内容而不取消键的设置?,php,arrays,multidimensional-array,associative-array,key-value,Php,Arrays,Multidimensional Array,Associative Array,Key Value,我有一个名为$aFilter的数组,如下所示(打印($aFilter);的输出): 目前只显示一个内部数组元素,但它可以包含许多这样的元素。因此,考虑多个内部数组元素的情况。 Array( [0] => Array( [filter_id] => 84 [user_id] => 984 [item_id] =

我有一个名为
$aFilter
的数组,如下所示(打印($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        
          )
        )
所以我尝试了以下代码,但它在打印时返回了相同的数组($aFilter)

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

谢谢。

你可以这样做

foreach($aFilter as $aFilterRow)
{
    $aFilterRow['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; } );

你的数组是二维数组

因此,请使用以下示例:

$aFilter[0]['feed_type'] = '';
已编辑

foreach($aFilter as $aFilt)
{
    $aFilt['feed_type'] = '';
}
我应该帮助你。试试这个:

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

这将实现以下目的:

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

你不想要那把钥匙或者你需要它是空的?@sgtBOSE:我想要钥匙存在,但它不应该包含任何内容。键['feed_type']中的当前内容应该从所有这样的内部数组元素中清空。但是如果有多个这样的内部数组元素呢?您的代码只对第一个内部数组元素有效。然后您必须循环遍历它。这只是OP条件的解决方案。但是如果有多个这样的内部数组元素呢?您的代码仅适用于第一个内部数组元素。因为它是关联数组。如果它只有一行,您可以直接使用$aFilter[0]['feed_type']=”;
array_walk( $aFilter, function(&$var){
    $var['feed_type'] = '';
});