我正在尝试从文本文件中读取数据,然后使用PHPplot绘制它。 文本文件如下所示:
0 24
1 28
2 30
3 35
4 40
我正在尝试将数据转换为:
array(array(0,24),array(1,28),array(2,30),array(3,35),array(4,40))
我在php中的代码就像这样
$file = fopen("data2.txt", "r");;
while (!feof($file)) {
$line_of_text .= fgets($file);
}
$members = explode("\n", $line_of_text);
fclose($file);
for ($j=0; $j<=10; $j++)
{
$parts[$j]=explode(" ", $members[$j]);
}
# plot
require_once 'phplot.php';
for ($x = 0; $x <= 5; $x += 1)
$data[] = array('', $parts[$x][0], $parts[$x][1]);
$plot = new PHPlot(800, 600);
$plot->SetPrintImage(False); // No automatic output
$plot->SetImageBorderType('plain');
$plot->SetPlotType('lines');
$plot->SetDataType('data-data');
$plot->SetDataValues($data);
$plot->SetPlotAreaWorld(0, 0, 10, 40);
$plot->SetDrawYGrid(True);
$plot->DrawGraph();
问题在于:
$data[] = array('', $parts[$x][0], $parts[$x][1]);
它不会绘制$ parts [$ x] [1]数字。当我说打印$ parts [$ x] [1]值时,它会在浏览器上打印它,但只是不绘制它。有趣的是,当我要求它绘制
时$data[] = array('', $parts[$x][0], $parts[$x][1]);
这次是情节!!
var_dump($ parts)给出了:
array(11) { [0]=> array(2) { [0]=> string(1) "0" [1]=> string(3) "24 " } [1]=> array(2) { [0]=> string(1) "1" [1]=> string(3) "28 " } [2]=> array(2) { [0]=> string(1) "2" [1]=> string(3) "30 " } [3]=> array(2) { [0]=> string(1) "3" [1]=> string(3) "35 " } [4]=> array(2) { [0]=> string(1) "4" [1]=> string(2) "40" } [5]=> array(1) { [0]=> string(0) "" } [6]=> array(1) { [0]=> string(0) "" } [7]=> array(1) { [0]=> string(0) "" } [8]=> array(1) { [0]=> string(0) "" } [9]=> array(1) { [0]=> string(0) "" } [10]=> array(1) { [0]=> string(0) "" } }
var_dump($ data)也给出了:
array(5) { [0]=> array(3) { [0]=> string(0) "" [1]=> int(0) [2]=> string(3) "24 " } [1]=> array(3) { [0]=> string(0) "" [1]=> int(1) [2]=> string(3) "28 " } [2]=> array(3) { [0]=> string(0) "" [1]=> int(2) [2]=> string(3) "30 " } [3]=> array(3) { [0]=> string(0) "" [1]=> int(3) [2]=> string(3) "35 " } [4]=> array(3) { [0]=> string(0) "" [1]=> int(4) [2]=> string(2) "40" } }
请帮助我多多谢谢
答案 0 :(得分:1)
Reza,根据你的var_dump,数组中的值是字符串,你在问题中显示的数组有整数。以下是将这些字符串转换为整数的一种方法。
for ($j=0; $j<=10; $j++){
$tmp=explode(" ", $members[$j]);
for($k=0; $k<count($tmp); $k++){
$tmp[$k] = intval($tmp[$k]);
}
$parts[$j]=$tmp;
}