最近、ThinkPHPを使ってJDサービスマーケット向けのアプリケーションを開発したのですが、JDサービスマーケットのインターフェースから返されるデータはオブジェクト配列です。ただし、属性を 1 つずつ取り出して配列に入れ、ThinkPHP の addAll または add メソッドを使用してデータベースに書き込む必要があります。ただし、毎回返されるフィールドが数十個あり、このように接続するたびに崩れてしまいます。案の定、同じ文のままですが、耐えられないと感じたら、文を変える方法を見つけます。そこで、オブジェクト配列を通常の配列に自動的に変換できる関数があればよいのではないかと考えました。つまり、ユニバーサル インターネット検索が戻ってきました。百度が合格した。 。 。案の定、既に対応されている先輩もいらっしゃいますので、ここに記録しておきます。
コードをコピーします コードは次のとおりです:
/**
* [std_class_object_to_array オブジェクトを配列に変換]
* @param [stdclass] $stdclassobject [オブジェクト]
* @return [配列] [配列]
*/
関数 std_class_object_to_array($stdclassobject)
{
$_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;
foreach ($_array as $key => $value) {
$value = (is_array($value) || is_object($value)) std_class_object_to_array($value) : $value;
$array[$key] = $value;
}
$array を返す;
}
このようにして、オブジェクト配列は通常の配列に適切に変換されます。頭を使ってコードサイズを減らし、機能をエレガントに実装しました。一石二鳥、ぜひ試してみませんか?