stdClass 和 Array 互换
方法一:
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;
}
// example:
$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
方法二:
<?php
function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}
if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(__FUNCTION__, $d);
}
else {
// Return array
return $d;
}
}
function arrayToObject($d) {
if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return (object) array_map(__FUNCTION__, $d);
}
else {
// Return object
return $d;
}
}
// Create new stdClass Object
$init = new stdClass;
// Add some test data
$init->foo = "Test data";
$init->bar = new stdClass;
$init->bar->baaz = "Testing";
$init->bar->fooz = new stdClass;
$init->bar->fooz->baz = "Testing again";
$init->foox = "Just test";
// Convert array to object and then object back to array
$array = objectToArray($init);
$object = arrayToObject($array);
// Print objects and array
print_r($init);
echo "\n";
print_r($array);
echo "\n";
print_r($object);
?>
关联: PHP: stdclass, 数组转成对象
分享到:
相关推荐
很多人在PHP输出一个二维数组的时候出现“Fatal error: Cannot use object of type stdClass as array in……”。解决办法分析如下: 现有这样一个二维数组: 复制代码 代码如下:Array ( [0] => stdClass Object ( ...
复制代码 代码如下://PHP stdClass Object转array function object_array($array) { if(is_object($array)) { $array = (array)$array; } if(is_array($array)) { foreach($array as $key=>$value) { $array[$...
需要操作的数据: 复制代码 代码如下: $test =Array ( [0] => stdClass Object ( [tags] => 最快的车,Bloodhound,SSC [id] => 48326888 ) ) 从网上查到的方法是 用get_object_vars 把类类型转换成数组 然后在用 ...
主要介绍了PHP JSON出错:Cannot use object of type stdClass as array解决方法,需要的朋友可以参考下
复制代码 代码如下:function std_class_object_to_array($stdclassobject){ $_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject; foreach ($_array as $key => $value)...
本文实例讲述了PHP标准类(stdclass)用法。分享给大家供大家参考...object(stdClass)[1] object(stdClass)[1] public 'a' => int 1 public 'b' => int 1 当使用类型转换时,就是使用了标准类 $arr = array('a'=>1);
function array2object($array) { if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val){ $obj->$key = $val; } } else { $obj = $array; } return $obj; } function object2...
该类实现了公共参数对象的功能,是stdClass或Array的可选替代品。 方法: - has( name ) - get( name ) //TODO if is callable return a result - set( key, value ) //TODO - toArray() - toObject() - merge
PHP中有非常方便的对数组进行重新排序的方法——asort,关于asort的使用方法可以看 ... [0] => stdClass Object ( [username] => 张三 [password] => DQ9uqQW2+UudOsZpQMnyvGG9L+RHZB6LRzBVDvAEL9uOBNf2zTWUnykhZFj
如下所示: <?php //php反编码解析json信息 //json_decode(json字符串); $city = array('shandong'=>'jinan','henan'=>'zhengzhou','hebei'=>'shijiazhuang');...//object(stdClass)#1 (3) {
mixed PDOStatement::fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] ) 获取下一行并作为一个对象返回。此函数(方法)是使用 PDO::FETCH_CLASS 或 PDO::FETCH_OBJ 风格的 PDOStatement::...
get_category get_category 可能我们...$out返回值类型[OBJECT, ARRAY_A, or ARRAY_N] $filter 函数返回值 这里主要讲一下对象类型的返回值, 都有注释,请自行参阅。 stdClass Object ( //ID 分类和标签混编 [ter
移动友好检查器多网址的移动设备友好检查器(使用Page Speed Insights API) <... ##结果## Array( [c6172f67cbbc2a6a31289e58fafa7cf5] => stdClass Object ( [score] => 99 [pass] => true
$ object = new \ StdClass ; $ object -> email = 'something' ; $ m -> setData ( $ object ); /** * false */ var_dump ( $ m -> validate ()); /** * array(1) { * ["email"]=> * array(1) { * [0]=> * string...
最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组。然而需要一个个属性取出来放到数组里面然后再利用...* [std_class_object_to_array 将对象转成数组] * @param [stdclass