Bonjour à tous,
J'ai un soucis avec les tableaux php. J'ai une fonction qui en entré parcours un répertoire pour me retourner la liste des éléments au format JSON.
Pour se faire j'utilise le code suivant :
le Résultat :
callbackName({"success":1,"objects":{"1":[{"type":"folder","name":"IMAG0009.jpg","href":".\/documents\/Pictures\/Elise\/\/IMAG0009.jpg"}],"23":[{"type":"folder","name":"DSC_0038.JPG","href":".\/documents\/Pictures\/Elise\/\/DSC_0038.JPG"}]}});
Les éléments en rouge me posent probleme, et, il provienne de l'ajout de tableaux dans le tableau $objects['objects'] en faisant :
En revanche si je fais :
Je n'ais plus le problème des "index" du tableaux qui sont ajoutés à mon résultat JSON.
Ma requete est donc la suivante, existe-il un moyen pour soit supprimer les index du tableaux, soit ajouter des données dans un tableaux sans que cela n'ajoute des index ??
PS : je ne peux pas modifier ma fonction qui décode le JSON
Merci d'avance
Ben
Modifié par bentsen (29 Apr 2010 - 16:40)
J'ai un soucis avec les tableaux php. J'ai une fonction qui en entré parcours un répertoire pour me retourner la liste des éléments au format JSON.
Pour se faire j'utilise le code suivant :
Header("content-type: application/x-javascript");
$objects = array();
$dir = (($_GET['f']));
if ($dir == NULL){$dir = "./documents/Pictures/Elise/";}
listDir($dir);
function listDir($dir)
{
if(isset($_GET['callbackName']))
{
$connection = $_GET['callbackName'];
$objects['success'] = 1;
$openedDir = opendir($dir);
while(false !== ($folderList = readdir($openedDir)))
{
if($folderList !="." && $folderList !="..")
{
if(is_dir($dir.'/'.$folderList)) //if is folder
{
$objet = array('type'=>'folder','name'=> $folderList,'href'=>$dir.'/'.$folderList);
$objects['objects'][count($objects['objects'])+1] = array($objet);
}
else // It's a file
{
$objet = array('type'=>'folder','name'=> $folderList,'href'=>$dir.'/'.$folderList);
$objects['objects'][count($objects['objects'])+1] = array($objet);
}
}
}
}
echo($connection.'(' . json_encode($objects) . ');');
}
le Résultat :
callbackName({"success":1,"objects":{"1":[{"type":"folder","name":"IMAG0009.jpg","href":".\/documents\/Pictures\/Elise\/\/IMAG0009.jpg"}],"23":[{"type":"folder","name":"DSC_0038.JPG","href":".\/documents\/Pictures\/Elise\/\/DSC_0038.JPG"}]}});
Les éléments en rouge me posent probleme, et, il provienne de l'ajout de tableaux dans le tableau $objects['objects'] en faisant :
$objects['objects'][1] = array("key1"=>"val1", "key2"=>"val2");
$objects['objects'][2] = array("key1"=>"val1", "key2"=>"val2");
En revanche si je fais :
$tab1 = array("key1"=>"val1", "key2"=>"val2");
$tab2 = array("key1"=>"val1", "key2"=>"val2");
$objects = array($tab1,$tab2);
Je n'ais plus le problème des "index" du tableaux qui sont ajoutés à mon résultat JSON.
Ma requete est donc la suivante, existe-il un moyen pour soit supprimer les index du tableaux, soit ajouter des données dans un tableaux sans que cela n'ajoute des index ??
PS : je ne peux pas modifier ma fonction qui décode le JSON
Merci d'avance
Ben
Modifié par bentsen (29 Apr 2010 - 16:40)