如何清空属于关联数组的键的内容而不取消 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'] = '';
为什么会这样?有人可以帮我解决我的问题吗?
谢谢。
你可以这样做
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'] = '';
}
array_walk 应该能帮到你。试试这个:
function removeFeedType(&$arr)
{
$arr['feed_type'] = null;
}
array_walk($aField, 'removeFeedType');
这样做就可以了:
array_walk( $aFilter, function(&$var){
$var['feed_type'] = '';
});
我有一个名为 $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'] = '';
为什么会这样?有人可以帮我解决我的问题吗?
谢谢。
你可以这样做
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'] = '';
}
array_walk 应该能帮到你。试试这个:
function removeFeedType(&$arr)
{
$arr['feed_type'] = null;
}
array_walk($aField, 'removeFeedType');
这样做就可以了:
array_walk( $aFilter, function(&$var){
$var['feed_type'] = '';
});