0
私はいくつかのプライベートバールを持つ記事クラスを持っています。それから、私は古いDBFデータベース(CSVに変換された)を開こうとしていて、CSVからいくつかのフィールドを私の$ articleに入力しようとしています。オブジェクトの配列が空の配列を返しますか?
私はCSVファイルに4747個の記事があるので、記事の配列を作成しようとしています。
記事に書かれた直後に記事をエコーした場合、それはうまく見えます。しかし、whileループが閉じていると、配列の縫い目は空の行で埋められることになります。なぜなら、countは配列のメンバーを正確に4747個表示するからです。
実際には配列は$columns
へのポインタであり、ループが終了するとすぐに何も指さないので、何も得られません。 :)
オブジェクトの配列に正確なデータを書き込むためにPHPを(もしできれば)強制することはできますか?
public function readCSVFile ($article)
{
$row=0;
$singlecolumn='';
$columns = '';
$articlesarray = array();
//$columns = array();
//echo $current_file_path;// $this->csvtoopen = $_POST['csvtoimport'];
if (($handle = fopen("e:\\Tmp\\DBF2CSV\\tartikli.csv", "r")) != FALSE)
{
while (!feof($handle))
{
$columns = fgetcsv($handle, 1000, ",");
$article->id=$columns[0];
$article->name=$columns[1];
$article->unit=$columns[2];
$article->price=$columns[14];
$article->stack=$columns[20];
$articlesarray[$row]=$article;
//echo $articlesarray[$row]->name; //---> Works fine
$row++;
}
}
echo count($articlesarray);
for ($i=0;$i<count($articlesarray);$i++)
{
echo $articlesarray[$i]->name; //----> does not work any more
}
fclose($handle);
return $articlesarray;
}
TNXハサン・ハーンを、次のような何かを。そのように動作します:)実際には、4747記事の4747記事を作成するのは理にかなっています。ただ1つではなく、奇跡を期待しています:) – Balkyto
@Balykto whileループを使用してオブジェクトを作成し、そのオブジェクトを配列に割り当てます。ソフトウェアには奇跡はありません:)。変数スコープだけ。 – Kevin