1

Javascript 配列内の PHP 配列を反復処理しようとすると、いくつかの問題が発生します...フォーラムを検索しましたが、PHP 値を Javascript 値にコピーすることに関する投稿をいくつか見つけましたが、正確に何を見つけることができません私は達成しようとしています...

「phpArray」と呼ばれる配列の PHP 配列があり、この配列の各値を配列の Javascript 配列 (「javaArray」と呼ばれる) にコピーしたいと考えています。「phpArray」が空になったときにJavascript配列を設定するJavascriptループがあり、PHPインデックスを使用して「phpArray」を反復処理しようとしています。ただし、PHP インデックスが増加しないかのように動作し、取得できる唯一の配列値は "phpArray" の最初の値です...これに対応するコードは次のとおりです。

for (var i = 0; i < javaArray.length; i++) {
    javaArray[i] = new Array(<?php echo $numCols; ?>);

    for (var j = 0; j < javaArray[i].length; j++) {
        javaArray[i][j] = "0";

        <?php 
        if(sizeof($javaArray) > 0)
        {
            ?>
            javaArray[i][j] = "<?php echo $phpArray[$i][$j]; ?>";
            <?php
        }
        ?>
    }
}

どうすればこれを行うことができますか?

あなたの時間と労力を前もって感謝します! :)

4

4 に答える 4

6

json_encodeを使用する必要があります。

javaArray = <?php echo json_encode($phpArray) ?>;
于 2013-05-27T11:33:22.650 に答える
0

コメントで示唆されているように、これは JavaScript が.phpページから生成された場合にのみ機能します。スクリプトの場合.jsは機能しません。

最も簡単な方法は

var javaArray = <?php echo json_encode($phpArray) ?>;

他の人が示唆したように。

コードが機能しなかった理由は、PHP サイクルではなく、javascript サイクルがあるためです。PHPでは、これを行うことができます:

var javaArray = [];
<?php
  for ($i=0; $i < count($phpArray); $i++) {
     for ($j=0; $j < count($phpArray[$i]); $j++) {
         echo "javaArray[$i][$j] = " . $javaArray[$i][$j] . ";";
     }
  }
?>
于 2013-05-27T11:38:56.443 に答える