PHP массив stringify

В текстовом приложении я пишу код, я использую массив для печати таблицы исполнителей. Массив художников выглядит так:

$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() путь?

17

Решение

Это то, что вы хотите?

echo json_encode ($ исполнителей)

PHP: json_encode

46

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]