Bonsoir

J'ai un fichier json que je charge avec php, ce fichier contient un tableau d'objets. Lorsque je veux supprimer un élément du tableau avec la fonction unset, le tableau devient alors un objet. Chose étrange, le problème n'apparaît pas lorsque je supprime le dernier élément du tableau..

Ce sera plus parlant avec un petit code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
<?php
$string = '{
	"key" : "value",
	"table" : [
		{
			"name" : "first thing",
			"file" : "first_thing.txt"
		},
		{
			"name" : "second thing",
			"file" : "second_thing.txt"
		},
		{
			"name" : "third thing",
			"file" : "third_thing.txt"
		}
	]
}';
 
$object = json_decode($string);
 
unset($object->table[1]);
 
echo json_encode($object);
?>
Ceci m'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
{
	"key" : "value",
	"table" : {
		"0" :
		{
			"name" : "first thing",
			"file" : "first_thing.txt"
		},
		"2" :
		{
			"name" : "third thing",
			"file" : "third_thing.txt"
		}
	}
}
Alors que si je remplace la ligne de unset par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
unset($object->table[2]);
J'obtient bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
{
	"key" : "value",
	"table" : [
		{
			"name" : "first thing",
			"file" : "first_thing.txt"
		},
		{
			"name" : "second thing",
			"file" : "second_thing.txt"
		}
	]
}
Cela peut-il s'expliquer mais aussi et surtout se solutionner ?

Merci d'avance