ホームページ  >  記事  >  バックエンド開発  >  PHP簡易オブジェクト・配列変換関数コード(php多層配列・オブジェクト変換)_PHPチュートリアル

PHP簡易オブジェクト・配列変換関数コード(php多層配列・オブジェクト変換)_PHPチュートリアル

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

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

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 (オブジェクト)$e;

関数 objectToArray($e){
$e=(配列)$e;
foreach($e as $k=>$v){
if( gettype($v) )== 'リソース' ) return;
if( gettype($v)=='object' || gettype($v)=='array' )
$e[$k]=(array)objectToArray($v) ); }
return $e;


上記の内容は、cnblogs jaiho
php の多層配列とオブジェクトの変換からのものです
多層配列とオブジェクトの変換の目的は非常に簡単です。 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;
}
}
// 新しい stdClass オブジェクトを作成する
$init = new stdClass; // テストデータを追加します
$init->foo = "テストデータ";
$init->bar->baaz = "テスト"; >bar->fooz = new stdClass;
$ init->bar->fooz->baz = "再度テストします";
$init->foox = "テストするだけ";配列からオブジェクトへ、そしてオブジェクトから配列へ
$array = objectToArray($init);
$object = arrayToObject($array); // オブジェクトと配列を出力します
print_r($init);
print_r($array);
print_r($object);






http://www.bkjia.com/PHPjc/323330.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/323330.html

技術記事

次のようにコードをコピーします。 function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=$v){ if( gettype($v)=='配列 ' || getType($v)=='オブジェクト' ) $e[$k]=(オブジェクト)a...

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