[ create a new paste ] login | about

Link: http://codepad.org/idlXdij3    [ raw code | output | fork ]

PHP, pasted on Aug 11:
<?php

	//The array we begin with
	$start_array = array('foo' => 'bar', 'bar' => 'foo', 'foobar' => 'barfoo');
	
	//Convert the array to a string
	$array_string = print_r($start_array, true);

	//Get the new array
	$end_array = text_to_array($array_string);
	
	//Output the array!
	print_r($end_array);
	
	function text_to_array($str) {

		//Initialize arrays
		$keys = array();
		$values = array();
		$output = array();
		
		//Is it an array?
		if( substr($str, 0, 5) == 'Array' ) {
		
			//Let's parse it (hopefully it won't clash)
			$array_contents = substr($str, 7, -2);
			$array_contents = str_replace(array(' ', '[', ']', '=>'), array('', '#!#', '#?#', ''), $array_contents);
			$array_fields = explode("#!#", $array_contents);
			
			//For each array-field, we need to explode on the delimiters I've set and make it look funny.
			for($i = 0; $i < count($array_fields); $i++ ) {
			
				//First run is glitched, so let's pass on that one.
				if( $i != 0 ) {
				
					$bits = explode('#?#', $array_fields[$i]);
					if( $bits[0] != '' ) $output[$bits[0]] = $bits[1];
				
				}
			}
			
			//Return the output.
			return $output;
			
		} else {
			
			//Duh, not an array.
			echo 'The given parameter is not an array.';
			return null;
		}
		
	}
?>


Output:
1
2
3
4
5
6
7
8
9
Array
(
    [foo] => bar

    [bar] => foo

    [foobar] => barfoo

)


Create a new paste based on this one


Comments: