ホームページ  >  記事  >  バックエンド開発  >  PHP 多層配列とオブジェクト変換のサンプル コード_PHP チュートリアル

PHP 多層配列とオブジェクト変換のサンプル コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:00:13934ブラウズ

多層配列とオブジェクト変換の目的は非常にシンプルで、WebServiceで多層配列とオブジェクト変換を処理するのに便利です

単純な (配列) と (オブジェクト) は単一レベルのデータのみを処理でき、複数レベルの配列とオブジェクトの変換には無力です。

オブジェクトは json_decode(json_encode($object) によって一度に配列に変換できますが、オブジェクト内で gbk 中国語はもちろんのこと、utf-8 でエンコードされていない非 ASCII 文字に遭遇すると問題が発生します。 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;
}
}
// Useage:
// 新しい stdClass オブジェクトを作成します
$init = new stdClass;
// テスト データを追加します
$init->foo = "テスト データ";
$init->gt;bar = new stdClass;
$init->bar->baaz = "テスト";
$init- >bar->fooz = new stdClass;
$ init->bar->fooz->baz = "再度テスト";
$init->foox = "テストだけ";

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

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/328084.html技術記事多層配列とオブジェクトの変換の目的は非常に単純です。これは、WebService で多層配列とオブジェクトの変換を処理する場合に便利です。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。