Edit report at http://bugs.php.net/bug.php?id=53201&edit=1

 ID:                 53201
 User updated by:    pratik dot vanol at gmail dot com
 Reported by:        pratik dot vanol at gmail dot com
 Summary:            json_encode can not encode as array when passing
                     array with key
 Status:             Wont fix
 Type:               Feature/Change Request
 Package:            JSON related
 Operating System:   ALL
 PHP Version:        5.3.3
 Block user comment: N

 New Comment:

Thanks for your reply...

Yeah, We can do the extra coding for removing array keys. Your
suggestion is work for one dimensional array. We can also do this from
recursive function and removing keys in all level depth. 



But it might taken extra time for executing the script if array is
large.



I have currently solved my problem using the recursive functions. But I
hope it should be something there for forcefully array JSON in PHP
function that I strongly believe. Look that if you genius guys can do
this in PHP functions. 



Further this is required because many scripts worked with only array of
JSON.



Thanks for your co-operation.



Pratik


Previous Comments:
------------------------------------------------------------------------
[2010-10-29 16:55:35] ras...@php.net

Well, that is how json works.  If you simply want to drop the keys and
get an 

array of just the values, just do:



json_encode(array_values($array))

------------------------------------------------------------------------
[2010-10-29 13:46:13] pratik dot vanol at gmail dot com

Description:
------------
Hi,

I am having one issues with json_encode function.  Let me explain
briefly.



I want the json represented string from PHP Array. When I pass the array
with not actually given 'key' value. json_encode return the encoded
string as array. 

But after giving the array with associative array it is forcefully
generated encoded as an object.



In short :

I can forcefully get the output of json_encode as an Object (using
JSON_FORCE_OBJECT as 2nd Argument))

But can not forcefully get the output of json_encode as an Array (!!!?)



I really need josn_encode as an array in my functionality no matter key
is given or not. Like added the JSON_FORCE_OBJECT there must be
something for array.

ignore keys should be pass in optional argument.

Please do not say this is actual behavior of json. I need this solution
in anyhow. 

Test script:
---------------
<?php





/*I am giving array with no keys or numeric start with 0,2,3,4....with
break sequence*/

$array = array("0" => "value1", "1" => "value2", "2" => "value3", "3" =>
"value4");

echo "Array output as array: ", json_encode($array);





echo "<br />";

/*I am giving array with no keys or numeric start with 0,2,3,4....with
break sequence*/

$array = array("0" => "value1", "3" => "value2", "3" => "value3", "6" =>
"value4");

echo "Array output should be array: ", json_encode($array); // Need
output as an Array here shows as an Object forcefully





Expected result:
----------------
//Expected result:

Array output as array : ["value1","value2","value3","value4"]

Array output should be array: ["value1","value2","value3","value4"]

Actual result:
--------------
//Actual result:

Array output as array: ["value1","value2","value3","value4"]

Array output should be array: {"0":"value1","3":"value3","6":"value4"}


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53201&edit=1

Reply via email to