ホームページ >php教程 >php手册 >PHP の単純なオブジェクトと配列の変換関数コード (PHP の多層配列とオブジェクトの変換)

PHP の単純なオブジェクトと配列の変換関数コード (PHP の多層配列とオブジェクトの変換)

WBOY
WBOYオリジナル
2016-06-13 12:09:471311ブラウズ

コードをコピー コードは次のとおりです。


function arrayToObject($e){
if( gettype($e)! ='array ' ) return;
foreach($e as $k=>$v){
if( gettype($v)=='array' || getType($v)=='object ' )
$e[$k]=(object)arrayToObject($v);
}
return (object)$e;

関数 objectToArray($e) ){
$e=(array)$e;
foreach($e as $k=>$v){
if( gettype($v)=='resource' )
if ( gettype($v)=='object' || gettype($v)=='array' )
$e[$k]=(array)objectToArray($v);
return $e;
}


上記の内容は cnblogs jaiho からのものです

PHP の多層配列とオブジェクトの変換
多層の変換の目的配列とオブジェクトは非常にシンプルで、WebService で多層配列とオブジェクトの変換を処理するのに便利です。
シンプルな (配列) と (オブジェクト) は単層データのみを処理できますが、多層配列とオブジェクトについては何もできません。オブジェクト変換。
オブジェクトは json_decode(json_encode($object) によって一度に配列に変換できますが、オブジェクト内に gbk 中国語、 json_encode と decode のパフォーマンスについて言及することも重要です。

以下のコード:


コードをコピーします コードは次のとおりです。


function objectToArray($d) {
if (is_object($d)) {
// 指定されたオブジェクトのプロパティを取得します
// get_object_vars 関数を使用
$d = get_object_vars($d);
}

if (is_array($d)) {
/*
* 配列を返すオブジェクト
* に変換されます __FUNCTION__ (マジック定数)
* を再帰呼び出しに使用します
*/
return array_map(__FUNCTION__, $d);
}
else {
/ / 配列を返します
return $d;
}
}

function arrayToObject($d) {
if (is_array($d)) {
/*
* オブジェクトに変換された配列を返します
* __FUNCTION__ (マジック定数)
* を再帰呼び出しに使用します
*/
return (object) array_map(__FUNCTION__, $d) <🎜; >else {
// オブジェクトを返します
return $d;
}
}

// 使用方法:
// 新しい stdClass オブジェクトを作成します
$init = new stdClass;
// テスト データを追加します
$init->foo = "テスト データ";
$init->bar- >baaz = "テスト中";
$init ->bar->fooz = 新しい stdClass;
$init->bar->fooz->baz = "再度テスト中"; >$init->foox = "テストだけ";

// 配列をオブジェクトに変換してから、オブジェクトを配列に戻します
$array = objectToArray($init);
$object = arrayToObject ($array);

// オブジェクトと配列を出力します。
print_r($init);
print_r($array); ;
print_r($object);



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。