В приложении для текстов я кодирую, я использую массив для печати таблицы художников. Массив художников выглядит следующим образом:
$artists = [
[ "Avril Lavigne" ],
[ "3 Doors Down" ],
[ "Celine Dion" ],
[ "Evanescence" ],
[ "Shania Twain" ],
[ "Green Day" ],
//...
];
Перед печатью я сделаю некоторую модификацию массива. У меня есть папка для каждого исполнителя, которая содержит файлы песен. Я добавляю имена папок в массив $artists
для дальнейшего использования:
$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);
}
Позже я добавляю альбом и количество дорожек для каждого исполнителя в массив:
$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);
}
Конечный результат массива выглядит следующим образом:
$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 ],
//...
];
Теперь моя проблема заключается в том, что этот процесс происходит каждый раз, когда я посещаю страницу. 2-й, 3-й и 4-й столбцы создаются снова и снова. Я думаю, что это избыточно.
Я хочу сохранить конечный результат массива и использовать его на странице. Если бы это был JavaScript, я бы использовал JSON.stringify()
, но в PHP я не знаю, как получить конечный результат массива. print_r()
не выполняет задания, потому что он печатает его следующим образом:
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
)
...
Я хочу так:
[
[
"Avril Lavigne",
"avril_lavigne",
5,
61
],
[
"3 Doors Down",
"3_doors_down",
5,
13
],
//...
]
Есть ли способ распечатать массив JSON.stringify()
способ?