2016-04-23 12 views
1

プロジェクトにPHPGraphlibを使用する。キーと値を使ってPHP配列を動的に構築する方法

グラフにデータを追加します。配列の値はy軸の値になります。

$graph->addData(array(100,12,43,342,9)); 

配列にキーがある場合、キーは対応するx軸の値になります。

$data = array("1" => 100, "2" => 12, "3" => 43, "4" => 342, "5" => 9); 

キー値「1」から動的に$データ配列を構築し、変数に値をカンマで区切って割り当てる必要があります。値の量は変わる可能性があります。例えば:

$values="100,12,43,342,9,22,33"; 

私は今は値の数を有するアレイ

$splits = explode(",",$values); 

にデータを爆発する可能性があります。だから、どのように私は$ data配列が本質的であるように、増分キーにこれらの値を割り当てるためにループをコーディングします:このような

$data = array("1" => 100, "2" => 12, "3" => 43, "4" => 342, "5" => 9, "6" => 22, "7"=> 33); 
+0

は、PHPのドキュメントには各ループのために見て、私がやった理由ですが、それは働いていなかった – hounded

答えて

3

は何か?

<?php 
$values="100,12,43,342,9,22,33"; 
$splits = explode(",",$values); 
$data = array(); 
for ($x = 0; $x < count($splits); $x++) { 
    $data[$x+1] = intval($splits[$x],10);  
} 

var_dump($data); 
+0

を通してあなたループとして新しい配列を作成してもらってください。だから、私はvar_dumpを追加し、データが整数ではなく文字列として割り当てられていることを認識しました(PHPGraphlibが必要です)。だから私はあなたのコードに1つの変更を加え、それは今働きます。ありがとうございました!変更された$ data [$ x + 1] =(int)$ splitits [$ x]; – user2140857

+0

金としてはいいですが、そうかもしれないので、あなたはfloatvalを使うこともできます。 nice – hounded

2

これは、配列を1つのインデックスとして開始する必要があります。

<?php 
$values = "100,12,43,342,9,22,33"; 
$splits = explode(",", $values); 
$data = array_combine(range(1, count($splits)), array_values($splits)); 
$data = array_map('intval', $data); // converts values to int 

var_dump($data); 
+0

ありがとう!!!!!!!! – user2140857

+0

問題はありませんが、解決策の1つとして回答をマークしてください。 –

+1

標準のPHP関数を使用していたので私はあなたの答えが好きでしたが、それぞれの関数がある程度ループしていなければならないので、私のコードと私のコードをテストしたところ、あなたのメソッドを使ってパフォーマンスがはるかに遅くなっています – hounded

関連する問題