2 つの配列 (そのうちの 1 つは配列の配列) を使用して PHP でループすることにより、SQL クエリを作成しようとしています。
//build array of arrays using predefined arrays
$regions = array_filter(array($EAPRO, $WCARO, $ROSA, $TACRO, $MENA, $ESARO));
//just a normal array
$regionnames = array('EAPRO', 'WCARO', 'ROSA', 'TACRO', 'MENA', 'ESARO');
$sql = "";
foreach(array_combine($regions, $regionnames) as $region => $regionname)
{
$sql .="UPDATE `database`.`table` SET `region`='$regionname'
WHERE `countryname` IN (" . implode(",",$region) . ");";
}
echo $sql;
ただし、ideone でこれをデバッグすると、次のようになります。
Warning: implode(): Invalid arguments passed on line:
UPDATE `database`.`table` SET `region`='ESARO' WHERE `countryname` IN ();
これは、各ループの配列が正しく内破されていないことを示しています。配列の配列を定義した方法に何か問題がありますか?
ありがとう