迭代多个数组到php查询


Iterate over multiple arrays into php query

整体项目:

从AJAX保存多个数组

在PHP中遍历数组:

我已经成功地通过使用array_combine和foreach(见示例)保存了2个数组,但现在

问题:

我有20多个动态内容数组,我需要迭代到我的查询语句中。

AJAX成功示例

var setTitle = new Array();
    $('form input[name="setTitle[]"]').each(function () {
        setTitle.push($(this).val());
    });
    var setUnitId = new Array();
    $('form input[name="setUnitId[]"]').each(function () {
        setUnitId.push($(this).val());
    });
$.ajax({
        type: 'POST',
        url: 'form_process2_wkout.php',
        data: {
            setTitle:setTitle,
            setUnitId:setUnitId,
            // ...and so on...//
        },
        dataType: 'json',
        cache: false,
        async: false

PHP (form_process2_wkout.php)正在接收每个$_POST…我把它们组合成一个数组…

    $setArray = array(
            $x_set_title,
            $x_set_unit_id,
            // ...and so on... //
    );

我已经var_dump了这个数组来测试…

$data= var_dump($setArray);
echo $data;

生成以下内容:

array(24) {
    [0]=>
    array(3) {
    [0]=>
    string(9) "Ab Roller"
    [1]=>
    string(16) "Slide Back Lunge"
    [2]=>
    string(10) "Jump Squat"
    }
    [1]=>
    array(3) {
    [0]=>
    string(1) "2"
    [1]=>
    string(3) "879"
    [2]=>
    string(3) "872"
    }
    ...and so on...
}

不太确定如何写入foreach来遍历这些项:

foreach($setArray as $id => $key) {
    $set_title = mysqli_real_escape_string($dbc, $_POST['setTitle']);
    $set_unit_id = mysqli_real_escape_string($dbc, $_POST['setUnitId']);
    //...and so on.../
}

这样我就可以在下面的查询中使用它们:

$sql= "INSERT INTO ".$table1." (`goal_unit_id`,`goal_title`,...and so on...)
       VALUES ";
$sql.="('".$set_unit_id."','".$set_title."',...and so on...)";

我已经引用了许多其他方法,但都没有运气:

PHP:遍历多个数组并构建SQL INSERT查询

array使用php

组合三个或多个数组

PHP foreach循环中的多个索引变量

使用全局变量或类变量实现如下,请参考PHP中的arra_map, array_merge api

<?php
$x_set_title = array('Ab Roller', 'Slide Back Lunge', 'Jump Squat');
$x_set_unit_id = array('2', '879', '872');
function escape_str($title, $id)
{
   $dbc = $GLOBALS['dbc'];
   $title = mysqli_real_escape_string($dbc, $title);    
   $id = mysqli_real_escape_string($dbc, $id);  
   return (array($title, $id));
}
$setArray = array_map('escape_str', $x_set_title,$x_set_unit_id);
print_r($setArray);
foreach($setArray as $oneArray)
{
    echo $oneArray[0].'  '.$oneArray[1];
}