如何从字符串中删除数组元素
How delete array elements from string
我需要从字符串中删除数组中的键。
字符串是 translations.fr
数组是
[
...,
translations => [
fr => [
...
],
es => [
...
]
],
...,
]
结果必须是:
[
...,
translations => [
es => [
...
]
],
...,
]
我认为,使用 exlpode
和 unset
是个好方法。
你能帮帮我吗?谢谢
试试这个
unset(ArrayName[key][key].....)
试试这个:
如果要替换同一个数组,将"fr"完全删除
$translationArray = unset($translationArray['fr']);
如果要保留之前的数组,在新的数组中保存修改
$translationArrayNew = unset($translationArray['fr']);
我想这就是您要找的:
$str = 'translations.fr';
$exploded = explode('.', $str);
$array = [
'translations' => [
'fr' => 'fr value',
'es' => 'es value',
]
];
unset($array[$exploded[0]][$exploded[1]]);
使用 explode
将字符串放入包含 2 个键的数组中:
0 => 翻译
1 => fr
这会访问数组中的 'translations' 键
$array[$exploded[0]]
这会访问 'translations'
中的 'fr' 键
$array[$exploded[0]][$exploded[1]]
这就像写作:$array['translations]['fr']
解决方案:
public function deleteKeyV3($keyToDelete) {
$keys = explode('.', $keyToDelete);
$result = &$array;
foreach ($keys as $key) {
if (isset($result[$key])) {
if ($key == end($keys)) {
unset($result[$key]);
} else {
$result = &$result[$key];
}
}
}
}
我需要从字符串中删除数组中的键。
字符串是 translations.fr
数组是
[
...,
translations => [
fr => [
...
],
es => [
...
]
],
...,
]
结果必须是:
[
...,
translations => [
es => [
...
]
],
...,
]
我认为,使用 exlpode
和 unset
是个好方法。
你能帮帮我吗?谢谢
试试这个
unset(ArrayName[key][key].....)
试试这个:
如果要替换同一个数组,将"fr"完全删除
$translationArray = unset($translationArray['fr']);
如果要保留之前的数组,在新的数组中保存修改
$translationArrayNew = unset($translationArray['fr']);
我想这就是您要找的:
$str = 'translations.fr';
$exploded = explode('.', $str);
$array = [
'translations' => [
'fr' => 'fr value',
'es' => 'es value',
]
];
unset($array[$exploded[0]][$exploded[1]]);
使用 explode
将字符串放入包含 2 个键的数组中:
0 => 翻译
1 => fr
这会访问数组中的 'translations' 键
$array[$exploded[0]]
这会访问 'translations'
中的 'fr' 键$array[$exploded[0]][$exploded[1]]
这就像写作:$array['translations]['fr']
解决方案:
public function deleteKeyV3($keyToDelete) {
$keys = explode('.', $keyToDelete);
$result = &$array;
foreach ($keys as $key) {
if (isset($result[$key])) {
if ($key == end($keys)) {
unset($result[$key]);
} else {
$result = &$result[$key];
}
}
}
}