Anand Neema
Anand Neema

Reputation: 660

Need the array at index zero in some different manner

$i=0;
foreach($tagss as $tagdetails)
    {
        if($i==0)
 $tags_array[]["00"]=array("id"=>$i,"name"=>"all","type"=>"gift_finder","parent_id"=>null,"url"=>"all","readonly"=>"0","deleted"=>"0");


 $tags_array[][$tagdetails->id]=array("id"=>$tagdetails->id,"name"=>$tagdetails->title,"type"=>"gift_finder","parent_id"=>null,"url"=>$tagdetails->title,"readonly"=>"0","deleted"=>"0");


    $i++;
    }
echo json_encode($tags_array);

my out put of above code is :-

[{"00":{"id":0,"name":"all","type":"gift_finder","parent_id":null,"url":"all","readonly":"0","deleted":"0"}},{"1":{"id":"1","name":"Adventure","type":"gift_finder","parent_id":null,"url":"Adventure","readonly":"0","deleted":"0"}},{"2":{"id":"2","name":"cool","type":"gift_finder","parent_id":null,"url":"cool","readonly":"0","deleted":"0"}}] 

that is the right but i want the out put like (just need 0 instead of 00) so i tried :-

   $i=0;
foreach($tagss as $tagdetails)
    {
        if($i==0)
 $tags_array[]["0"]=array("id"=>$i,"name"=>"all","type"=>"gift_finder","parent_id"=>null,"url"=>"all","readonly"=>"0","deleted"=>"0");


 $tags_array[][$tagdetails->id]=array("id"=>$tagdetails->id,"name"=>$tagdetails->title,"type"=>"gift_finder","parent_id"=>null,"url"=>$tagdetails->title,"readonly"=>"0","deleted"=>"0");


    $i++;
    }
echo json_encode($tags_array);

ouput of the above code :-

[[{"id":0,"name":"all","type":"gift_finder","parent_id":null,"url":"all","readonly":"0","deleted":"0"}],{"1":{"id":"1","name":"Adventure","type":"gift_finder","parent_id":null,"url":"Adventure","readonly":"0","deleted":"0"}},{"2":{"id":"2","name":"cool","type":"gift_finder","parent_id":null,"url":"cool","readonly":"0","deleted":"0"}}] 

that is logically right that it is put the first element in the array and treat next element at first index but i need 0 index separately

Any suggestion please thanks in advance .

in summary I need

[{"0":{"id":0,"name":"all","type":"gift_finder","parent_id":null,"url":"all","readonly":"0",
"deleted":"0"}},
{"1":"id":"1","name":"Adventure","type":"gift_finder","parent_id":null,"url":"Adventure","readonly":"0","deleted":"0"}},
{"2":"id":"2","name":"cool","type":"gift_finder","parent_id":null,"url":"cool","readonly":"0","deleted":"0"}
}] 

Upvotes: 2

Views: 77

Answers (1)

Alma Do
Alma Do

Reputation: 37365

You just need to pass option to your json_encode() call. It is JSON_FORCE_OBJECT:

echo json_encode($tags_array, JSON_FORCE_OBJECT);

then you'll able to result in an object for numeric keys (so you don't need to pass keys from PHP at all). Please, note, that is available since PHP 5.3

Upvotes: 2

Related Questions