2017-01-12 19 views
1

この問題を解決するのに役立つことがありますか?これで、x軸のすべてのX値が出力されます。軸の5番目の値と ""の値を出力するループを作ることはできますか?グラフのx軸にx値を出力

var ctx = document.getElementById('lux').getContext('2d'); 
 
var lux = new Chart(ctx, { 
 
    type: 'line', 
 
    data: { 
 
     labels: [ 
 
      <?php 
 
      for ($x = 0; $x < (count($data) - 1); $x++) { 
 
       echo $x . ' , '; 
 
      } 
 
      ?> 
 
     ] 
 
    } 
 
});

+0

あなたのforループで$ x ++を$ x + 5に置き換えることができるので、1の –

+0

ではなく5を増分するか、モジュラス演算子 '%'を使用して条件を追加します。if(($ x%5)= = 0)echo $ x' – Jeff

答えて

0

mod演算子(%)は、5番目ごとに要素があるかどうかを判断するのに最適です。私は一般的に、forループのものをエコーすることを避けようとします、特にJavascriptに出力するとき。私はおそらく、2つのチャンクでこれにアプローチします:データを準備し、希望の値をエコーアウトするには、​​を使用してください:

ここではループの代わりにarray_mapが使用されています参照する変数を提供します。

<?php 

$arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']; 

$result = array_map(function ($x, $index) { 
    return $index % 5 === 0 ? $x : ''; 
}, $arr, array_keys($arr)); 

?> 

var ctx = document.getElementById('lux').getContext('2d'); 
var lux = new Chart(ctx, { 
    type: 'line', 
    data: { 
     labels: <?php echo json_encode($result) ?>, 
       // Outputs: ["a","","","","","f","","","",""] 
    } 
} 

hereを実行できます。

0

"0"、 ""、 ""、 ""、 ""、 "5"、 "" のような何かが....この

をお試しください
<?php 
    for ($x = 0; $x < (count($data) - 1); $x++) { 
     if($x % 5 == 0){ 
     echo $x; //5th element 
     }else{ 
     echo "''"; //prints empty for other than 5th element 
     } 
     echo ', '; //prints ',' for every element 
    } 
?>