0

テキスト ファイルからデータを読み取り、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" } }

助けてください どうもありがとう

4

1 に答える 1

1

Reza、vardumpによると、配列の値は文字列であり、質問で示した配列にはintが含まれていました。これらの文字列をintに変換する1つの方法があります。

    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;     
    }
于 2012-10-17T17:13:07.833 に答える