Forzar PHP json_encode () para codificar los índices como cadenas

Tengo una configuración de matriz de la siguiente manera:

$myArray = array(); $myArray[] = "New array item 1"; $myArray[] = "New array item 2"; $myArray[] = "New array item 3"; 

Cuando ejecuto json_encode () en él produce lo siguiente:

 ["New array item 1","New array item 2","New array item 3"] 

Lo que quiero es que la función codifique los índices como cadenas:

 {"0":"New array item 1","1":"New array item 2","2":"New array item 3"} 

Para que luego pueda eliminar decir el primer elemento sin afectar el índice del segundo.

¿Hay una forma fácil de hacer esto?

Solutions Collecting From Web of "Forzar PHP json_encode () para codificar los índices como cadenas"

Use JSON_FORCE_OBJECT :

 json_encode( $data, JSON_FORCE_OBJECT ); 

Requiere PHP 5.3+

No es exactamente lo que quiere pero puede usar la opción JSON_FORCE_OBJECT :

 json_encode($myArray, JSON_FORCE_OBJECT); 

que produciría:

 {"0":"New array item 1","1":"New array item 2","2":"New array item 3"} 

Lo mismo si lanzas tu matriz a un objeto:

 json_encode((object)$myArray); 

Alternativamente:

 $myArray = array( "0" => "New array item 1", "2" => "New array item 2", "3" => "New array item 3" ); echo json_encode($myArray); 

daría lo mismo:

 {"0":"New array item 1","2":"New array item 2","3":"New array item 3"} 

Para PHP <5.3, use este método:

 < ?php $myArray = array(); $myArray[] = "New array item 1"; $myArray[] = "New array item 2"; $myArray[] = "New array item 3"; echo json_encode((object)$myArray); // typecast the array as object ?>