我想删除键[价格],但我用于删除的功能对于这种情况不起作用
我有:
Array(
[Values] => 1
[Product] => Array(
[Details] => Array(
[ID] => 1
[Price] => Array(
)
)
)
)
我的目标是:
Array(
[Values] => 1
[Product] => Array(
[Details] => Array(
[ID] => 1
)
)
)
我用它来删除:
function remove_key($array, $key)
{
foreach($array as $k => $v) {
if(is_array($v)) {
$array[$k] = remove_key($v, $key);
} elseif($k == $key) {
unset($array[$k]);
}
}
return $array;
}
$array = remove_key($array,'Price');
这里有什么问题?
答案 0 :(得分:0)
<?php
$array = Array(
'Values' => 1,
'Product' => Array(
'Details' => Array(
'id' => 1,
'Price' => Array(
)
)
)
);
unset($array['Product']['Details']['Price']);
echo "<pre>";
print_r($array);
echo "</pre>";
输出是:
Array
(
[Values] => 1
[Product] => Array
(
[Details] => Array
(
[id] => 1
)
)
)
答案 1 :(得分:0)
因此,如果你想修复你的功能,你必须在第一个if
中添加另一个条件&& $k != $key
因为您没有进入elseif
而unset
未被称为
function remove_key($array, $key)
{
foreach($array as $k => $v) {
if(is_array($v) && $k != $key) {
$array[$k] = remove_key($v, $key);
} elseif($k == $key) {
unset($array[$k]);
}
}
return $array;
}