这似乎有一个非常简单的解决方案......但我很难弄清楚。我需要一个数组才能进入数据库。例如:
$usa = array(
'idaho' => array(
county1 => array(
'pocatello', 'arimo', 'downey'
),
county2 => array(
'bear', 'cuprum', 'mesa'
)
'iowa' => array(
county1 => array(
'des moines', 'adel', 'desoto'
),
county2 => array(
'douglas', 'grant', 'jasper'
)
);
我尝试了这种插入数据库的方法:
foreach($usa as $state => $county){
foreach($county as $name => $city){
$s=$state;
$county_name = strtolower($name);
$city = strtolower($city);
$us = "INSERT INTO us
SET state='{$s}',county='{$county_name}',city='{$city}'
";
$us_result = mysql_query($us,$connection);
}
}
我认为问题出在 foreach (将状态变量传递到第二个 foreach 循环中)。我已经尝试了多种不同的方法。预先感谢您的帮助!
***注意:当我删除插入的 $s=$state 变量和 state='{$s}' 部分时,一切正常。我仍然无法让它插入状态
最佳答案
有两个主要问题。
首先,您的数组未正确分隔,最好对县名称使用单引号或双引号,无论如何您都将其称为字符串:
$usa = array(
'idaho' => array(
'county1'=>array(
'pocatello', 'arimo', 'downey'
),
'county2'=>array(
'bear', 'cuprum', 'mesa'
)),
'iowa' => array(
'county1'=>array(
'des moines', 'adel', 'desoto'
),
'county2'=>array(
'douglas', 'grant', 'jasper'
))
);
其次,应该再有一个 foreach 循环来考虑城市名称:
foreach($usa as $state => $county){
foreach($county as $name => $city){
foreach ($city as $cityname) {
$s = $state;
$county_name = strtolower($name);
$city = strtolower($cityname);
$us = "INSERT INTO us SET state='{$s}',county='{$county_name}',city='{$city}'";
echo $us.'<br>';
}
}
}
希望这有帮助!
关于php - 将多维数组信息插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10541360/