ここで、ajax を使用してバックグラウンドと対話する必要がある場合、php 配列を js ファイルに転送して、js に認識させるにはどうすればよいでしょうか?
$arr 配列を取得したら、まず php ファイルを見てみましょう。 リーリー json_encode() は $arr の各値を json エンコードし、json 配列を出力したいので、コンパイルされた各値の後にカンマを追加し、最後にすべての値の外側に '[]' を追加します。これは、 json 配列。各値が json エンコードされた後にカンマを追加するため、すべての値が配列にマージされると余分なカンマが発生するため、substr() 関数を使用して最後のカンマを削除する必要があることに注意してください。 !
それでは、js ファイルを見てみましょう
arrを使用してphpファイルのjson配列を受信した後 リーリー JSON は、ダウンロードを開始したファイルで定義されたオブジェクトです。その parse メソッドを使用して、json 配列を js 配列に変換します。これは js 配列を受け取る変数 json であるため、直接出力することはできません。json 配列または json[0] を走査して出力することができます。
実際、率直に言うと、php 配列を js 配列に変換するという私たちのアイデアは、それを実現するために中間量の json を使用することです。もちろん、php と js のみを使用して配列を変換することもできます。方法は複数あります。
PHP配列とJson間の変換
Json が使用される理由は、多くの場合、ajax オブジェクトを使用するときのプログラムと JS 関数間のデータ対話のためです。 JS は PHP の配列を認識しないため、PHP は JS の配列やオブジェクトを認識しません。 Json はこの問題を非常にうまく解決します。
Jsonの紹介JSON (JavaScript Object Notation) は軽量のデータ交換形式です。これは JavaScript のサブセットに基づいているため、JavaScript は Json を直接読み取ることができ、非常に便利です。
Json の具体的な形式は次のとおりです:1.オブジェクト オブジェクトは、「名前と値のペア」の順序付けされていないコレクションです。オブジェクトは「{」(左括弧)で始まり「}」(右括弧)で終わります。各「名前」の後には「:」 (コロン) が続き、「名前と値」のペアは「,」 (カンマ) で区切られます。
例: {"ユーザー名": "エリック","年齢":23,"性別": "男"}
コード例:
リーリー2. 配列
配列は、順序付けられた値のコレクションです。配列は「[」 (左括弧) で始まり、「]」 (右括弧) で終わります。値は「,」(カンマ)で区切ります。
例: ["エリック",23, "男"]
コード例:
リーリー注: JS では、オブジェクトと配列の 2 つの形式は異なります。オブジェクトは「.」で呼び出され、配列は添え字 [0] と [1] で呼び出されます。また、Json 文字列を渡すときは、文字列型の値を引用符で囲む必要があることにも注意してください。
PHPで配列をJsonに変換します
強力な PHP には、組み込み関数 json_encode() と json_decode() がすでに提供されています。 json_encode() が PHP 配列を Json に変換することは容易に理解できます。逆に、 json_decode() は Json を PHP 配列に変換します。 例:
リーリープログラムは次のように出力します:
コードをコピーします
コードは次のとおりです:
{"名前":"エリック","年齢":23}
次の例をもう一度見てください:
リーリー
プログラムは次のように出力します: ["Eric",23]
上記の 2 つの例からわかるように、PHP 配列のキーがすべて数値の場合、json_encode() は PHP 配列のキーがすべて文字列の形式で Json を返します。次に、 json_encode() はオブジェクトの形式で Json を返します。ただそれを言いました。 js での 2 つの呼び出しは異なります。
実際、PHP 配列のキーに文字列形式のキーが存在する限り、 json_encode() はオブジェクトの形式で Json を返します。これは正しくありません。なぜなら、PHP コードではエラーは発生しませんが、そのような Json が JS 関数に渡されると、JS は Json をオブジェクトとして扱い、オブジェクトが属性名として数値を使用することは不可能だからです。言い換えれば、JS はこれが何であるかを知りません: user.0.username (真ん中に数字のゼロがあります)
http://www.bkjia.com/PHPjc/1058150.html
www.bkjia.com