У меня есть массив:
$myArray = array('key1'=>'value1', 'key2'=>'value2');
Я сохраняю его как переменную:
$fileContents = var_dump($myArray);
Как преобразовать переменную обратно в качестве регулярного массива?
echo $fileContents[0]; //output: value1 echo $fileContents[1]; //output: value2
Я думаю, вы, возможно, захотите изучить serialize
и unserialize
.
$myArray = array('key1'=>'value1', 'key2'=>'value2'); $serialized = serialize($myArray); $myNewArray = unserialize($serialized); print_r($myNewArray); // Array ( [key1] => value1 [key2] => value2 )
сериализация может быть правильным ответом – но я предпочитаю использовать JSON – редактирование данных человеком будет таким образом …
$myArray = array('key1'=>'value1', 'key2'=>'value2'); $serialized = json_encode($myArray); $myNewArray = json_decode($serialized); print_r($myNewArray); // Array ( [key1] => value1 [key2] => value2 )
Попробуйте использовать var_export для генерации действительного синтаксиса PHP, напишите это в файл и затем включите файл:
$myArray = array('key1'=>'value1', 'key2'=>'value2'); $fileContents = '<?php $myArray = '.var_export($myArray, true).'; ?>'; // ... after writing $fileContents to 'myFile.php' include 'myFile.php'; echo $myArray['key1']; // Output: value1
Как насчет eval? Вы также должны использовать var_export с возвращаемой переменной как true вместо var_dump.
$myArray = array('key1'=>'value1', 'key2'=>'value2'); $fileContents = var_export($myArray, true); eval("\$fileContentsArr = $fileContents;"); echo $fileContentsArr['key1']; //output: value1 echo $fileContentsArr['key2']; //output: value2
$array = ['10', "[1,2,3]", "[1,['4','5','6'],3]"]; function flat($array, &$return) { if (is_array($array)) { array_walk_recursive($array, function($a) use (&$return) { flat($a, $return); }); } else if (is_string($array) && stripos($array, '[') !== false) { $array = explode(',', trim($array, "[]")); flat($array, $return); } else { $return[] = $array; } } $return = array(); flat($array, $return); print_r($return);
ВЫВОД
Массив ([0] => 10 [1] => 1 [2] => 2 [3] => 3 [4] => 1 [5] => '4' [6] => '5' [7 ] => '6'] [8] => 3)