PHP循环使变量在下一个循环中可用

时间:2013-07-18 10:10:22

标签: loops

我有一个像这样的循环(只是一个样本,缺少许多变量):

foreach($inserts as $insert) {

$insert_update = 'INSERT INTO etc.. SET etc..'; // returns the last inserted ID

$insertedIDs[] = array($tables[$tbl]['owner'] => $insert_update);
}

现在您看到$insertedIDs[]正在数组中获取所有新插入的ID。 问题是在下一个$inserts循环中,我需要$insertedIDs[]可用于循环的其他变量,这将需要获取最后插入的ID。 问题是在下一个循环中,此变量无法识别,并返回错误。

如何在第一次循环后的每个下一个循环中使$insertedIDs[]可用?

我尝试在$insertedIDs[]之后宣布foreach为全球,但没有运气。

感谢您的任何建议

3 个答案:

答案 0 :(得分:0)

试试这可能会对你有所帮助:

$insertedIDs=Array();
foreach($inserts as $insert) {

$insert_update = 'INSERT INTO etc.. SET etc..'; // returns the last inserted ID

$insertedIDs[] = array($tables[$tbl]['owner'] => $insert_update);
}

现在您可以访问$ insertedIDs

答案 1 :(得分:0)

$insertedIDs = array();

foreach($inserts as $insert) {
    $insert_update = 'INSERT INTO etc.. SET etc..'; // returns the last inserted ID
    $insertedIDs[ $tables[$tbl]['owner'] ] = $insert_update;
}

print_r($insertedIDs);

答案 2 :(得分:0)

实际上很容易......尽量不要过度思考它。

//create an empty array
var $insertedIds = array();

//now loop and add to the array
foreach( $inserts as $insert )
{
    $insert_update = 'INSERT INTO etc.. SET etc..'; // returns the last inserted ID
    $insertedIds[][$tables[$tbl]['owner']] = $insert_update;

    //or if you want the owners to be keys in the first level of the array...
    //$insertedIds[$tables[$tbl]['owner']] = $insert_update;
}

//output the contents of the array
echo '<pre>' . print_r($insertedIds, true) . '</pre>';