gpt4 book ai didi

javascript - 如何使用php从json文件中删除节点

转载 作者:行者123 更新时间:2023-11-30 23:57:00 24 4
gpt4 key购买 nike

我有下一个 json:

[
{
"clave": "es",
"content": {
"barra": [
"a",
"a",
"N",
"C"
],
"letras_inicio": "a",
"titulos_servicios": [
"A",
"A",
"A"
],
"desc_servicios": [
"O",
"O",
"E"
],
"titulo_nosotros": "n",
"descripcion_nosotros": "S",
"titulos_especialidades": [
"A",
"A"
],
"desc_especialidades": [
"E",
"L"
],
"titulo_frm_contacto": "Co",
"frmContacto": [
"N",
"c",
"C",
"A",
"M",
"E"
]
}
},
{
"clave": "por",
"content": {
"barra": [
"f",
"f",
"f",
"f"
],
"letras_inicio": "f",
"titulos_servicios": [
"f",
"f",
"f"
],
"desc_servicios": [
"qf",
"qf",
"qf"
],
"titulo_nosotros": "f",
"descripcion_nosotros": "qf",
"titulos_especialidades": [
"f",
"f"
],
"desc_especialidades": [
"qf",
"qf"
],
"titulo_frm_contacto": "f",
"frmContacto": [
"f",
"f",
"f",
"f",
"f",
"f"
]
}
}
]

下一个代码是我用来从 json 文件中删除节点的:

$json = file_get_contents('php://input');
$obj = json_decode($json);
$index = filter_var($obj->index);
$data = file_get_contents('languajes.json');
$data = json_decode($data,true);
unset($data[$index]);
if($data = json_encode($data,JSON_PRETTY_PRINT)){
echo 'success';
}else{
echo 'failed';
}
file_put_contents('languajes.json', $data);

所以,当我保存 json 时,它看起来像:

{
"0": {
"clave": "es",
"content": {
"barra": [
"I",
"S",
"N",
"C"
],
"letras_inicio": "N",
"titulos_servicios": [
"A",
"A",
"A"
],
"desc_servicios": [
"O",
"O",
"E"
],
"titulo_nosotros": "N",
"descripcion_nosotros": "S",
"titulos_especialidades": [
"A",
"A"
],
"desc_especialidades": [
"E",
"L"
],
"titulo_frm_contacto": "C",
"frmContacto": [
"N",
"A",
"C",
"A",
"M",
"E"
]
}
},
"2": {
"clave": "en",
"content": {
"barra": [
"H",
"S",
"A",
"C"
],
"letras_inicio": "W",
"titulos_servicios": [
"W",
"M",
"D"
],
"desc_servicios": [
"W",
"W",
"W"
],
"titulo_nosotros": "A",
"descripcion_nosotros": "W",
"titulos_especialidades": [
"W",
"m"
],
"desc_especialidades": [
"f",
"a"
],
"titulo_frm_contacto": "C",
"frmContacto": [
"F",
"L",
"E",
"S",
"M",
"S"
]
}
}
}

问题是当你将数据保存在json文件中后尝试读取数据时,php放置的数字导致我无法读取该文件。我怎样才能避免这种情况发生?

我将非常感谢您的回答

最佳答案

unset() 只是从数组中删除一个索引,它不会调整所有其他元素的索引。当数组的索引不是从 0 开始的连续数字时,json_encode() 会将其编码为对象,而不是数组。

取消设置后,您可以使用以下命令重置所有索引

$data = array_values($data);

或者您可以使用array_splice()删除元素:

array_splice($data, $index, 1);

关于javascript - 如何使用php从json文件中删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60980624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com