PHP多个foreach

时间:2012-07-31 01:30:03

标签: php mysql arrays foreach while-loop

我正在尝试从mysql中的数组插入数据。我有多个阵列。我一直在努力做一些事情。

foreach ($titles as $title && $descriptions as $description) {
    mysql_query("INSERT INTO `stock` VALUES('', '$title', '$description')");
}

我希望mysql表看起来像这样。

item_id    title    description
_______________________________

1          title1   description1
2          title2   description2
...

现在我已经发现这是行不通的有替代方案。我已经看到了while循环的例子,但是我很难理解它是如何工作的。 所有帮助都提前感谢。

2 个答案:

答案 0 :(得分:3)

如果$titles的大小等于$descriptions的大小,并且您有顺序数组,则可以执行以下操作:

<?php
$titles = array(
    'foo',
    'bar'
);
$descriptions = array(
    'foo description',
    'bar description'
);

for($i = 0; $i < count($titles); $i++) {
    $title = $titles[$i];
    $description = $descriptions[$i];

    mysql_query("INSERT INTO `stock` VALUES('', '$title', '$description')");
}

答案 1 :(得分:3)

您正在寻找MultipleIterator,它将轻松迭代两个阵列:

$iter = new MultipleIterator;
$iter->attachIterator( new ArrayIterator( $titles));
$iter->attachIterator( new ArrayIterator( $descriptions));

foreach( $iter as $data) {
    list( $title, $description) = $data;
    // Do your SQL insert with $title and $description
}