本文章來介紹了在php中如何把數組轉換成對象或是把對象轉換成數組對象,用stdClass轉換數組為對象,代碼如下:
- $arr = array();
- $arr['a'] = 1;
- $arr['b'] = 2;
- $arr['c'] = 3;
- $arr = array();
- $arr['a'] = 1;
- $arr['b'] = 2;
- $arr['c'] = 3;
用stdClass轉換后,代碼如下:
- $object = new StdClass;
- $object->a = 1;
- $object->b = 2;
- $object->c = 3;
- $object = new StdClass;
- $object->a = 1;
- $object->b = 2;
- $object->c = 3;
stdClass是PHP的一個基類,所有的類幾乎都繼承這個類,所以任何時候都可以被new,可以讓這個變量成為一個object,同時,這個基類又有一個特殊的地方,就是沒有方法.
我應用的地方是simplexml中的simplexml_load_string()上,因為返回的全是對象,如果提取數據比較麻煩,所以應用了下面的函數,代碼如下:
- function object_to_array($obj)
- {
- $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
- foreach ($_arr as $key => $val)
- {
- $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
- $arr[$key] = $val;
- }
- return $arr;
- }
數組轉換成對象,代碼如下:
- <?php
- $array = array(1 => php,
- 2 => java,
- 3 => c );
- $arrayobject = new ArrayObject($array);
- var_dump($arrayobject);
- ?>
- //運行結果如下:
- //object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(3) { [1]=> string(3) "php" [2]=> string(4) "java" [3]=> string(3) "c " }}
一個類:ArrayObject,可以直接將數組轉化為對象,代碼如下:
- $array = array('1' => 'one',
- '2' => 'two',
- '3' => 'three');
- $arrayobject = new ArrayObject($array);
- var_dump($arrayobject);
- $array = array('1' => 'one',
- '2' => 'two',
- '3' => 'three');
- $arrayobject = new ArrayObject($array);
- var_dump($arrayobject);
- /*
- 結果如下:
- Php代碼
- object(ArrayObject)#1 (3) {
- [1]=>
- string(3) "one"
- [2]=>
- string(3) "two"
- [3]=>
- string(5) "three"
- } */
新聞熱點
疑難解答