PHP 数组字符串化

标签 php arrays 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  ],
    //...
];

现在,我的问题是每次访问该页面时都会发生此过程。第二、第三和第四列被一次又一次地创建。我认为这是多余的。

我想保存数组的最终结果并在页面上使用它。如果这是 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() 方式打印数组?

最佳答案

这是你想要的吗?

echo json_encode($artists)

PHP: json_encode

关于PHP 数组字符串化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798159/

相关文章:

php - SQL 命令正在执行,但在 mysqli 连接中返回 false

php - 我如何找到哪个域从我的服务器请求 iframe 并将域保存在数据库中

c - 使用 malloc 函数创建的数组超出了所需的大小

javascript - 返回 Json.Stringify 结果

javascript - 通过覆盖前一个文件在 Javascript 中保存 json 文件

javascript - 为什么我在 JSON.stringify(value, replacer) 中的替换函数在 Angular 应用程序中没有收到 key ?

php - mysql文本字段中的HTML标签

php !isset 和 empty 不工作

javascript - 当两个不同对象的两个值匹配时,向对象添加新的键/对

javascript - 如何对包含 null 和未定义元素的数组使用分配函数?