将数组字符串转换为数组


Convert array string to array

我想转换类似的数组字符串

[["a","b",["c1","c2"]],"d",["e1","e2"]]

转换为PHP中的数组。

有办法做到这一点吗?

提供的字符串是有效的JSON,因此可以使用json_decode将其转换为真实的(PHP)数组。

几乎直接从文档中获取(只更改了字符串):

$json = '[["a","b",["c1","c2"]],"d",["e1","e2"]]';
var_dump(json_decode($json));

在这种情况下,它比试图用其他代码评估器(即eval)破解它更干净、更安全,也比编写自定义解析代码更简单。

How to"压平";PHP中的多维数组到简单数组?以及如何展平多维阵列?

对我来说,最简单/最好的解决方案是

function flatten(array $array) {
    $return = array();
    array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
    return $return;
}