PHP オブジェクト (オブジェクト) と配列 (配列) 間の変換は、この問題に対して、以下に示すようにいくつかの例を開発で使用します。
<script>ec(2);</script>
配列は PHP の魂であり、非常に強力ですが、場合によっては、配列とオブジェクトを切り替えることも非常に便利です。
例1
コードは次のとおりです
| コードをコピー
|
/**
* オブジェクトへの配列
*
* @param 配列 $arr 配列
* @return オブジェクト
*/
関数 array_to_object($arr)
{
if (gettype($arr) != '配列')
{
戻る;
}
foreach ($arr as $k => $v)
{
if (gettype($v) == '配列' || getType($v) == 'オブジェクト')
{
$arr[$k] = (オブジェクト)array_to_object($v);
}
}
return (オブジェクト)$arr;
}
/**
* オブジェクトを配列に変換
*
* @param オブジェクト $obj オブジェクト
* @return 配列
*/
関数 object_to_array($obj)
{
$obj = (配列)$obj;
foreach ($obj as $k => $v)
{
if (gettype($v) == 'リソース')
{
戻る;
}
if (gettype($v) == 'オブジェクト' || gettype($v) == '配列')
{
$obj[$k] = (配列)オブジェクトから配列($v);
}
}
$obj を返します;
}
|
例 2
コードは次のとおりです
| コードをコピー
|
クラステスト{
公開 $a;
公開 $b;
パブリック関数 __construct($a) {
$this->a = $a;
}
}
//オブジェクトを配列に変換し、get_object_vars を使用してオブジェクト属性で構成される配列を返します
関数 objectToArray($obj){
$arr = is_object($obj) ? get_object_vars($obj) : $obj;
If(is_array($arr)){
return array_map(__FUNCTION__, $arr);
}その他{
戻り $arr;
}
}
//配列をオブジェクトに変換します
関数 arrayToObject($arr){
If(is_array($arr)){
return (オブジェクト) array_map(__FUNCTION__, $arr);
}その他{
戻り $arr;
}
}
$test = 新しいテスト('test1');
$test->b = 新しいテスト('test2');
print_r($test);
$array = objectToArray($test);
print_r($array);
$object = arrayToObject($array);
print_r($object);
|