PHPのループについて質問です。配列の要素を使用してアクションを実行しようとしていますが、常に最後の要素を使用しています。これを行うには、次のものが必要です。
1-私の配列が空ではないことを知るため。
2-配列の最後のアイテム名を取得するには。これは、Step0.php スクリプトを実行するために必要だからです。
3-配列の最後のアイテムを削除するには。
配列の値がゼロになるまでこのアクションを繰り返し、このループに出たいと思います。
私はこれを試しましたが、運がありませんでした。:-(
何か案が?
$array2;
$array1;
$diffe_array = array_diff($array2, $array1);
//CREATE THE CONDICTION
$diffe=count($diffe_array);
do {
$lastone=end($diffe_array);
require('./Step0.php');
$extract=array_pop($diffe_array);
$diffe=count($diffe_array);
print_r($diffe_array);
} while ($diffe > 0);
echo 'JUST YOU HAVE 0 ITEMS IN YOUR ARRAY!!!!';
私の質問を完了するには、明確にする必要があると思います(この例で):
Step1 .- 私は $array2 を次のように持っています:
array2 ( [0] => 00004.csv [1] => 00007.csv [2] => 00005.csv [3] => 00003.csv [4] => 00002.csv [5] => 00001.csv [6] => 00006.csv [7] => 00000.csv )
Step2 .- 私は &array1 を次のように持っています:
array1 ( [0] => 00004.csv [1] => 00003.csv [2] => 00002.csv [3] => 00001.csv [4] => 00000.csv )
Step3 .- array_diff($array2,$array1) を使用して diffe_array を計算します。
diffe_array ( [1] => 00007.csv [2] => 00005.csv [6] => 00006.csv )
Step4 .- diffe_array から各アイテムを抽出し、それを他のスクリプト Step0.php で使用するループを作成する必要があります (このスクリプトは、diffe_array の最後のアイテムと同じ名前のファイルを開き、その情報をデータベースに共有します) . diffe_array が空になるまでこれを行う必要があるため、ループから抜け出します。
ちなみにStep0.phpの内容は以下の通りです。
<?php
function Conection()
{
if (!($link=pg_connect("host=xxxxx port=xxxx dbname=xxxxx user=xxxxx password=xxxxx"))) {
echo "Error connecting to the database.";
exit();
}
return $link;
}
require_once('./process.php');//This is the before file
$rute="/rute/to/my/file/";
$end= $rute.$lastone;
$row = 0;
$handle = fopen($end, "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
echo '<b><br/><br/>';
$request = "insert into table(column1,column2,column3,column4) values(";
for ($c=0; $c < $num; $c++) {
if ($c==($num-1))
$request = $request."'".$data[$c] . "'";
else
$request = $request."'".$data[$c] . "',";
}
$request = $request.");";
echo $request."<br>";
$union=Conection();
$result=pg_query($union, $request);
pg_close($union);
}
fclose($handle);
?>