1

私はphpと呼ばれる配列の配列を持っています$searchResults。内の各配列$searchResultsは次のようにフォーマットされます。

array('name' => <name> , 'value' => <value>)

この 2 次元配列を JSON 配列としてエンコードし、JavaScript に返したいと考えています。この配列を PHP でエンコードして、JavaScript でデコードし、キーごとに各配列を反復処理できるようにするにはどうすればよいですか? これは可能ですか?構文を使用しない多次元配列のエンコードの例を見つけました<key> => <value>が、これらが適用可能かどうかはよくわかりません。例はここにあります。ありがとう!

4

2 に答える 2

1

2 つの方法があります。

1) 現在の状態で配列を渡します。

<?php
$array = [
    [ 'name' => 'x' , 'value' => 1 ],
    [ 'name' => 'y' , 'value' => 2 ],
    [ 'name' => 'z' , 'value' => 3 ]
];
?>

<script type="text/javascript">
var php_json = <?php echo json_encode($array); ?>;

for(var i = 0; i < php_json.length; i++){
    console.log(php_json[i]);
}
</script>

2) キーと値のペアに変換して渡す:

<?php
$array = [
    [ 'name' => 'x' , 'value' => 1 ],
    [ 'name' => 'y' , 'value' => 2 ],
    [ 'name' => 'z' , 'value' => 3 ]
];

$buffer = [];

foreach($array as &$nested){
    $buffer[$nested['name']] = $nested['value'];
}
?>

<script type="text/javascript">
var php_json = <?php echo json_encode($buffer); ?>;

for(var key in php_json){
     console.log(key, php_json[key]);
     //       key ^      ^ value
}
</script>

関数を使用して、簡単な php データ構造を JavaScript に簡単に渡すことができjson_encode()ます。

于 2013-09-18T14:56:47.613 に答える
0

テンプレートでこれを使用します:

<script>window.bootstrapped_data = <?php echo json_encode($my_js_vars); ?>;</script>

レンダリングされた出力は次のようになります。

<script>window.bootstrapped_data = {"name":"<name>","value":"<value"};</script>

変数名に置き換え$my_js_varsて、必要に応じて JavaScript 変数を呼び出します。その後、JavaScript で通常どおりこの変数にアクセスできます。

json_encodePHP は有効な JavaScript オブジェクトをレンダリングします。

于 2013-09-18T14:49:52.810 に答える