- 1、PHP中把對象轉數組的幾個方法
- 2、總結幾個對象轉數組的方法
- 3、php怎麼把對象轉為數組
- 4、如何將PHP對象數組轉換成普通數組
- 5、PHP中怎麼把對象轉換為關聯數組
- 6、PHP把對象轉換成數組
你可以循環一下,用新數組[‘key’]=舊對象-key。
也可以這樣:
$array =json_decode(json_encode(simplexml_load_string($xmlString)),TRUE);
在利用jQuery EasyUI框架進行程序開發時,碰到前台將JSON格式數據傳遞到伺服器後台,經php的json_decode函數轉換成的數組由於為對象數組,php程序無法對數據進行正常處理的情況,為此需要開發一個PHP回調函數(objarray_to_array)將對象數組轉換成普通數組。
/**
* 對象數組轉為普通數組
*
* AJAX提交到後台的JSON字串經decode解碼後為一個對象數組,
* 為此必須轉為普通數組後才能進行後續處理,
* 此函數支持多維數組處理。
*
* @param array
* @return array
*/
function objarray_to_array($obj) {
$ret = array();
foreach ($obj as $key = $value) {
if (gettype($value) == “array” || gettype($value) == “object”){
$ret[$key] = objarray_to_array($value);
}else{
$ret[$key] = $value;
}
}
return $ret;
}
這裡定義2個php匿名對象和數組相互轉換的函數,代碼如下:
function array2object($array) {
if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key = $val){ $obj-$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key = $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}
用法示例如下:
$array = array(‘foo’ = ‘bar’,’one’ = ‘two’,’three’ = ‘four’);$obj = array2object($array);print $obj-one; // output’s “two”$arr = object2array($obj);print $arr[‘foo’]; // output’s bar
在利用jQuery EasyUI框架進行程序開發時,碰到前台將JSON格式數據傳遞到伺服器後台,經php的json_decode函數轉換成的數組由於為對象數組,php程序無法對數據進行正常處理的情況,為此需要開發一個PHP回調函數(objarray_to_array)將對象數組轉換成普通數組。
/**
* 對象數組轉為普通數組
*
* AJAX提交到後台的JSON字串經decode解碼後為一個對象數組,
* 為此必須轉為普通數組後才能進行後續處理,
* 此函數支持多維數組處理。
*
* @param array
* @return array
*/
function objarray_to_array($obj) {
$ret = array();
foreach ($obj as $key = $value) {
if (gettype($value) == “array” || gettype($value) == “object”){
$ret[$key] = objarray_to_array($value);
}else{
$ret[$key] = $value;
}
}
return $ret;
}
可以用函數get_object_vars將對象轉換為屬性組成的關聯數組,其語法如下:
$arr1=get_object_vars($obj);//$obj為需要轉換的對象,下同
也可以用強制類型轉換,如:
$arr1=(array)$obj;
或者這樣:
$arr1=settype($obj,”array”);
你這種寫法更適合想要把私有或者保護的屬性取出來。
如果只是公有屬性,完全可以使用更方便的做法:
$res = json_decode(json_encode($obj),true);
$obj是原始對象,$res則是數組了。
原創文章,作者:TRSV0,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126172.html