我有一个这样的数组:
Array
(
[year] => 1994, 1995, 1996, 1997
[make] => Ford
[model] => Mustang, Mustang Cobra, Mustang GT
[engine] => 302, 302 H/O, V6
)
我想在数据库中插入所有可能的解决方案,将唯一的行插入到我的数据库中。
例如:
id year make model engine
1 1994 Ford Mustang 302
2 1994 Ford Mustang Cobra 302
3 1994 Ford Mustang GT 302
4 1994 Ford Mustang 302 H/O
...and so on
我需要能够分解该数组以将所有可能的解决方案放入一个唯一的行中。某些列可能没有值。例如,数组可能只包含几个Make。我想将所有独特的可能性插入到数组中。
Array
(
[0] => 1994, Ford, Mustang, 302
[1] => and so on...
)
答案 0 :(得分:1)
这是一种简单的方法,没有数据库部分,但我希望你能自己做到这一点:
$arr = array
(
'year' => '1994, 1995, 1996, 1997',
'make' => 'Ford',
'model' =>'Mustang, Mustang Cobra, Mustang GT',
'engine' => '302, 302 H/O, V6'
);
$years = explode(',',$arr['year']);
$makes = explode(',',$arr['make']);
$models = explode(',',$arr['model']);
$engines = explode(',',$arr['engine']);
foreach($years as $year) {
foreach($makes as $make) {
foreach($models as $model) {
foreach($engines as $engine) {
echo 'INSERT INTO yourtable '.$year.', '.$make.', '.$model.', '.$engine."\n";
}
}
}
}
答案 1 :(得分:0)
如果您需要“所有独特的可能性”(组合),最直接的方法是迭代您的信息数组,将每个项目嵌套在另一个项目中。对于从迭代创建的每个组合,使用收集的信息创建一个数组并添加到最终数组。例如:以伪代码的形式
finalArray = new array()
foreach(year as y)
foreach(make as m)
foreach(model as mo)
foreach(engine as e)
newArray = new array(y,m,mo,e)
add newArray to finalArray
希望它能帮助你