Converta a cadeia de matriz PHP em uma matriz

Eu tenho uma matriz:

$myArray = array('key1'=>'value1', 'key2'=>'value2'); 

Eu o salve como uma variável:

 $fileContents = var_dump($myArray); 

Como converter a variável de volta para usar como uma matriz regular?

 echo $fileContents[0]; //output: value1 echo $fileContents[1]; //output: value2 

Eu acho que você pode querer olhar para serialize e unserialize .

 $myArray = array('key1'=>'value1', 'key2'=>'value2'); $serialized = serialize($myArray); $myNewArray = unserialize($serialized); print_r($myNewArray); // Array ( [key1] => value1 [key2] => value2 ) 

serialize pode ser a resposta certa – mas prefiro usar JSON – a edição humana dos dados será possível dessa maneira …

 $myArray = array('key1'=>'value1', 'key2'=>'value2'); $serialized = json_encode($myArray); $myNewArray = json_decode($serialized); print_r($myNewArray); // Array ( [key1] => value1 [key2] => value2 ) 

Tente usar var_export para gerar syntax PHP válida, escreva isso em um arquivo e depois inclua o arquivo:

 $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 

Que tal eval? Você também deve usar var_export com a variável de retorno como verdadeiro em vez de 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); 

SAÍDA

 Array ([0] => 10 [1] => 1 [2] => 2 [3] => 3 [4] => 1 [5] => '4' [6] => '5' [7 ] => '6'] [8] => 3)