在我编辑的歌词应用程序中,我正在使用一个数组打印一个艺术家表.艺术家阵列如下所示:
$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",13 ],[ "Celine dion","celine_dion",7,22 ],[ "Evanescence","evanescence",4,10 ],[ "Shania Twain","shania_twain",3,12 ],[ "Green Day","green_day",8,26 ],//... ];
现在,我的问题是每次访问页面时都会发生这个过程.第二,第三和第四列是一次又一次创建的.我认为这是多余的.
我想保存数组的最终结果并在页面上使用它.如果这是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",61 ],[ "3 Doors Down",13 ],//... ]
有没有办法打印数组JSON.stringify()方式?
这是你想要的吗?
echo json_encode($artists)