php内爆二维数组并生成字符串

php内爆二维数组并生成字符串,php,sql,loops,foreach,implode,Php,Sql,Loops,Foreach,Implode,为了在mysql中一次插入多条记录,我想先将二维数组转换成字符串,然后在php中启动mysql查询来插入所有这些记录 我有如下的二维数组 Array ( [0] => Array ( [0] => Ryan [1] => 1 [2] => 0 ) [1] => Array ( [0] => Simon

为了在mysql中一次插入多条记录,我想先将二维数组转换成字符串,然后在php中启动mysql查询来插入所有这些记录

我有如下的二维数组

Array
(
    [0] => Array
        (
            [0] => Ryan
            [1] => 1
            [2] => 0
        )
    [1] => Array
        (
            [0] => Simon
            [1] => 2
            [2] => 1
        )
    .
    .
    .
)
我想做一根这样的线

('Ryan', '1', '0'), ('Simon', '2', '1'), .....
我知道如果它是一维的,我们可以这样做,
“”。内爆(“,”,$row)。“'”


当然,我们可以在foreach循环中使用foreach。但我想用内爆函数。有什么想法吗

以下代码可用于解决将2d数组内爆为字符串的问题

echo implode(', ', array_map(function ($entry) {
 return "(".implode(',',$entry).")";
}, $inputArray));
我建议使用一个,而不是用内爆构造一个插入查询

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$stmt = $mysqli->prepare("INSERT INTO myTable VALUES (?, ?, ?)");
$stmt->bind_param('sii', $row[0], $row[1], $row[2]);

foreach($rows as $row) {
    $stmt->execute();
}

您不能仅通过
内爆()
调用来实现这一点。你必须在数组中循环。但这样的事情应该适合你:

<?php

    echo $str = "(" . implode("), (", array_map(function($v){
        return "'" . implode("','", $v) . "'";
    }, $row)) . ")";

?>

仅使用内爆函数?你至少需要一些能在所有数组中循环的东西。序列化数组或对其进行JSON编码难道不是更容易吗?@Rizier123,我没有明确提到“仅使用内爆函数”。我们很可能也使用其他函数。@SohanPatel那么你已经知道解决方案了。您需要以某种方式在所有阵列中循环并内爆them@SohanPatel预处理语句实际上非常适合执行多次的查询,因为查询只是经过解析的once@FuzzyTree现在唯一的问题是API OP使用哪种API,也许他已经使用PDO了。(但答案是正确的:)@SohanPatel那么这个问题我们在哪里?FuzzyTree的答案是你想要/需要的吗?@Rizier123是的,我使用PDO。但我有一个问题。使用哪种方法最好?我应该从循环生成查询并一次插入所有记录,还是按照FuzzyTree的建议:使用准备好的语句。哪一个性能更好。对不起,我是PDO的新手。