2016-04-23 94 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 = array("1" => 100, "2" => 12, "3" => 43, "4" => 342, "5" => 9, "6" => 22, "7"=> 33); 
+0

有你看着在PHP文檔的每個循環,並通過 – hounded

回答

3

是這樣的:那麼,這樣的$ data數組基本上是我如何編寫一個循環來分配這些值增量鍵?

<?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需要)。所以我對代碼進行了一次更改,現在它可以工作。謝謝!更改$ data [$ x + 1] =(int)$ splits [$ x]; – user2140857

+0

好像黃金,意識到可能是這樣的情況下檢查編輯你也可以使用floatval,snap!不錯 – hounded

2

這應該啓動數組作爲一個索引。

<?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

我喜歡你的答案,因爲它使用標準的PHP函數,但是因爲每個函數都必須在某個循環中測試你的代碼和我的代碼,並且使用你的方法的性能要慢得多 – hounded