var_export 関数の助けを借りて、配列プロトタイプを構築するシリアル化メソッドを使用すると、最終的な関数は次のようになります:
コードは次のとおりです | |
関数 array_iconv($in_charset,$out_charset,$arr){ return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';')); } |
原理は非常に単純で、var_export は 2 番目のパラメータを true に設定し、配列のプロトタイプ文字列を返し、その文字列を utf-8 エンコーディングに変換し、その後 eval を使用して戻りを実行することで (匿名関数と同様?)、完璧に問題。
Yiju チュートリアルのエディターは別のアイデアを持っています。それは、foreach を使用して配列を走査し、iocnv 関数を使用して 1 つずつ変換するというものですが、この変換は配列の値を変換することです。