print json_encode array php arrays stringify

json_encode - PHP array stringify



php object to json (1)

¿Es esto lo que quieres?

echo json_encode ($ artistas)

PHP: json_encode

En una aplicación de letras que estoy codificando, estoy usando una matriz para imprimir una tabla de artistas. La matriz de artistas se ve así:

$artists = [ [ "Avril Lavigne" ], [ "3 Doors Down" ], [ "Celine Dion" ], [ "Evanescence" ], [ "Shania Twain" ], [ "Green Day" ], //... ];

Antes de imprimirlo, hago algunas modificaciones a la matriz. Tengo una carpeta para cada artista que contiene los archivos de letras. Agrego los nombres de las carpetas a la matriz $artists para su uso posterior:

$folder_fix = [ [" ", "_" ], [".", "" ], ["&", "n" ], ]; for ($i = 0; $i < count($artists); $i++) { $folder_name = strtolower($artists[$i][0]); for ($k = 0; $k < count($folder_fix); $k++) { $folder_name = str_replace($folder_fix[$k][0], $folder_fix[$k][1], $folder_name); } array_push($artists[$i], $folder_name); }

Más tarde, agrego el álbum y el número de pistas para cada artista a la matriz:

$lyrics_base = "lyrics/"; for ($i = 0; $i < count($artists); $i++) { $albums_path = $lyrics_base . $artists[$i][1] . "/*"; $tracks_path = $lyrics_base . $artists[$i][1] . "/*/*"; $albums = count(glob($albums_path)); $tracks = count(glob($tracks_path)); array_push($artists[$i], $albums); array_push($artists[$i], $tracks); }

El resultado final de la matriz se ve así:

$artists = [ [ "Avril Lavigne", "avril_lavigne", 5, 61 ], [ "3 Doors Down", "3_doors_down", 5, 13 ], [ "Celine Dion", "celine_dion", 7, 22 ], [ "Evanescence", "evanescence", 4, 10 ], [ "Shania Twain", "shania_twain", 3, 12 ], [ "Green Day", "green_day", 8, 26 ], //... ];

Ahora, mi problema es que este proceso ocurre cada vez que visito la página. Las columnas 2, 3 y 4 se crean una y otra vez. Creo que esto es redundante.

Quiero guardar el resultado final de la matriz y usarlo en la página. Si esto fuera JavaScript, usaría JSON.stringify() , pero en PHP no sé cómo obtener el resultado final de la matriz. print_r() no hace el trabajo, porque lo imprime así:

Array ( [0] => Array ( [0] => Avril Lavigne [1] => avril_lavigne [2] => 5 [3] => 61 ) [1] => Array ( [0] => 3 Doors Down [1] => 3_doors_down [2] => 5 [3] => 13 ) ...

Lo quiero así:

[ [ "Avril Lavigne", "avril_lavigne", 5, 61 ], [ "3 Doors Down", "3_doors_down", 5, 13 ], //... ]

¿Hay alguna manera de imprimir la matriz de la forma JSON.stringify() ?