[英]php loop through multiple arrays with same key
How can I go about getting these results to insert into a database as one record for each key name? 如何将这些结果作为每个键名的一条记录插入数据库中? These 2 arrays will always have the same number of records and key names. 这两个数组将始终具有相同数量的记录和键名。
[size_chart_data] =Array (
[Width] =Array (
[Small] =18
[Medium] =20
[Large] =22
[X-Large] =24
[2X-Large] =26
[3X-Large] =28
[4X-Large] =30
[5X-Large] =32
)
[Height] =Array (
[Small] =28
[Medium] =29
[Large] =30
[X-Large] =31
[2X-Large] =32
[3X-Large] =33
[4X-Large] =34
[5X-Large] =35
)
)
I am using the following sql to insert into the database: 我正在使用以下sql插入数据库:
$chartData = db_insert('pa_size_chart_data')
->fields(array(
'width',
'height',
));
Thank you so much for your time. 非常感谢您的参与。 Please let me know if anything needs clarification. 请让我知道是否需要澄清。 Aaron 亚伦
I suppose you should do this: 我想你应该这样做:
$size_chart_data = array();
foreach ($size_chart_data['Width'] as $key => $value) {
$db_data = array();
if (!empty($size_chart_data['Height'][$key])) {
$db_data = array(
'size_id' => $key, // this is size_id
'width' => $value, // this is width
'height' => $size_chart_data['Height'][$key], // this is height
);
// check what you've got
print_r($db_data);
// add $db_data to database, I suppose it's like
$chartData = db_insert('pa_size_chart_data')
->fields($db_data);
}
}
This is the answer. 这就是答案。 Very special thank you to @u_mulder and @blackandorangecat for all of your helpful thoughts!!! 非常感谢@u_mulder和@blackandorangecat提出的所有有益建议!!! In the question I only included width and height. 在这个问题中,我只包括宽度和高度。 But I felt it could be more helpful for others if I included a 3rd level. 但是,我觉得如果加入第3级,对其他人可能会更有帮助。 So the answer includes width, height, & sleeve. 因此答案包括宽度,高度和袖子。
$size_chart_data = array();
foreach ($size_chart_data['Width'] as $key => $value) {
// floatval() is changing string results to float
$value = floatval($value);
if (!empty($size_chart_data['Height']) && !empty($size_chart_data['Sleeve'])) {
// floatval() is changing string results to float
$size_chart_data['Height'][$key] = floatval($size_chart_data['Height'][$key]);
$size_chart_data['Sleeve'][$key] = floatval($size_chart_data['Sleeve'][$key]);
$db_data = array(
'width' => $value, // this is width
'height' => $size_chart_data['Height'][$key], // this is height
'sleeve' => $size_chart_data['Sleeve'][$key], // this is the sleeve
);
} elseif (!empty($size_chart_data['Height'])) {
$size_chart_data['Height'][$key] = floatval($size_chart_data['Height'][$key]);
$db_data = array(
'width' => $value, // this is width
'height' => $size_chart_data['Height'][$key], // this is height
'sleeve' => null, // this is the sleeve
);
} elseif (!empty($size_chart_data['Width'])){
$db_data = array(
'width' => $value, // this is width
'height' => null, // this is height
'sleeve' => null, // this is the sleeve
);
}
$sizeArr = array($db_data);
$chartData = db_insert('pa_size_chart_data')
->fields(array(
'width',
'height',
'sleeve',
));
foreach ($sizeArr as $sizeRec) {
$chartData->values($sizeRec);
}
$chartData->execute();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.