我们如何用php交错数组?

我们如何用php交错数组?,php,mysql,arrays,Php,Mysql,Arrays,我正在尝试构建如下SQL语句: INSERT INTO mytable(`People`, `Places`, `Ideas`) VALUES ('40', '15', null), (null, '5', '10'), ('10', null, '11'); 我们有三个具有以下值的数组 $people = array('45','null','10'); $places = array('15','5','null

我正在尝试构建如下SQL语句:

INSERT INTO mytable(`People`, `Places`, `Ideas`)
       VALUES ('40', '15',  null),
              (null, '5',   '10'),
              ('10',  null, '11');
我们有三个具有以下值的数组

$people = array('45','null','10');
$places = array('15','5','null');
$ideas = array('null','11');
如何从阵列中构建相应的SQL查询?

使这变得简单:

$query = 'INSERT INTO mytable(`People`, `Places`, `Ideas`) VALUES ';

$value_arrs = array($people, $places, $ideas);
$value_arrs_size = count($value_arrs);

for ($i = 0; $i < $value_arrs_size; ++$i) {
    $query .= '(' . implode(', ', $value_arrays[$i]) . ')';

    if ($i < $value_arrs_size - 1) {
        $query .= ', ';
    }
}
$query='INSERT-INTO-mytable(`People`、`Places`、`Ideas`)值';
$value\u arrs=数组($people,$places,$ideas);
$value\u arrs\u size=计数($value\u arrs);
对于($i=0;$i<$value\u arrs\u size;++$i){
$query.='('.内爆(',',$value_数组[$i]));
如果($i<$value\u arrs\u size-1){
$query.=',';
}
}
只有当您的值都是数字或
null
时,这才有效。您需要在SQL语句中所需的任何字符串周围添加引号


另外,如果这是用户提供的输入,您必须使用PDO或类似的工具
mysql\u query()
已被弃用。除非您的数组中有NULL值而不是字符串“NULL”,否则您可以使用循环遍历数组,并生成查询字符串。但这可能会很棘手。询问代码的问题必须证明对所解决问题的理解是最低限度的。包括尝试过的解决方案、它们不起作用的原因以及预期结果。另见: