Chris Nizzardini, Salt Lake City Utah, Web Developer Specializing in LAMP+Ajax Since 2006

My Blog

Here is my awesome blog. You can find information on programming, linux, documentation, tips for code and database optimization, my thoughts and rants, and whatever else I feel like sharing. Feel free to contribute to the blog by posting comments and asking questions.
Programming

Convert a PHP Object to an Array

I’m really surprised that PHP 5 does not have built-in functionality for converting objects into arrays. Basically I had an Ajax function sending me a javascript object in JSON format to my PHP method. My method was already setup to handle an array, so after decoding the JSON into a PHP object and passed the object into this function.

1
2
3
4
5
6
7
8
9
	function objectToArray($object)
	{
		$array=array();
		foreach($object as $member=>$data)
		{
			$array[$member]=$data;
		}
		return $array;
	}

The problem with this method is that it will only move public variables into the array. Anything that is private cannot be accessed. You can try type casting your PHP 5 object to an array.

$array = (array) $this;

When I did this I got some really strange characters in the array. It does not seem that there is an easy way to convert a PHP 5 object to an array. Your best bet is to write a custom function that either converts your objects variables into array elements or if you are connecting to a database, just return the result set that builds the object in array form.

Related posts:

  1. Pass Objects and Arrays Between JavaScript and PHP with JSON
  2. using JSON to pass JavaScript arrays to PHP via Ajax
  3. form checkboxes in php array and storing variables in url string
  4. sorting a multidimensional array in php
  5. ajax and the xmlhttprequest object

Tags: , ,

6 Responses to “Convert a PHP Object to an Array”

  1. PuReWebDev says:

    You might want to go ahead and check out the get_object_vars() function. Just enter an object instance as your parameter, and your result is an array of the properties in that object. Very nice and built in method to accomplish what your function does.

  2. chris says:

    I will absolutely check this out. Will this work on private object members as well?

  3. Arif says:

    Dude Good example but use proper naming conventions for variables . You are spoiling my programmers

  4. UFO Coder says:

    Dude, did you forget about get_object_vars method (built in) of PHP?

  5. Sukuvi says:

    What are you talking about? There are no naming conventions in PHP…

  6. gad820 says:

    enhance version

    function objectToArray($object)
    {
    if(!is_object($object) && !is_array($object))
    return $object;

    $array=array();
    foreach($object as $member=>$data)
    {
    $array[$member]=objectToArray($data);
    }
    return $array;
    }

Leave a Reply