Я хотел бы преобразовать массив строк какПреобразовать массив строк в массив
[["a","b",["c1","c2"]],"d",["e1","e2"]]
в массив в PHP.
Есть ли способ сделать это?
Я хотел бы преобразовать массив строк какПреобразовать массив строк в массив
[["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
) и проще, чем писать пользовательский код синтаксического анализа.
Почему 'eval' в вашем ответе? 'eval' никогда не будет правильным ответом. – Halcyon
@FritsvanCampen Я думаю, что eval заслуживает упоминания именно потому, что он использовался для подобных задач (этот вопрос не был первоначально помечен json). Я обновил формулировку, чтобы попытаться сделать ее более очевидной. Также обратите внимание, что нет ссылки на 'eval'. – user2246674
Возможный дубликат How to "flatten" a multi-dimensional array to simple one in PHP? и How to Flatten a Multidimensional Array?
Самый простой/ценное решение для меня
function flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
Я думаю, что тег [json] означает, что это строка, которая нуждается в синтаксическом анализе как JSON - но это трудно сказать. – Ryan
Возможно, вы правы. Я оставлю это здесь, если это наоборот. (Скорее всего, –
массив строк? что вам нужно в результате? ["a", "b", "c1", "c2", "d", "e1", "e2"]? –
Это, скорее всего, дубликат http://stackoverflow.com/questions/526556/how-to-flatten-a-multi-dimensional-array-to-simple-one-in-php – MadDogMcNamara
Я не понимаю нисходящие , Вопрос заключается в интересной проблеме разбора строк для создания вложенных массивов в памяти. Я новичок в SO, но я предполагаю, что люди просто не поняли вопроса. – Racso