Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将一个元素添加到多维数组中_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 将一个元素添加到多维数组中

Php 将一个元素添加到多维数组中,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个不难的问题,但我找不到答案 我有一个多维数组,用于通过一个查询插入数据。结果是: INSERT INTO table (field1, field2, field3, field4) values ('1', '2', '3'),('1', '2', '3'),('1', '2', '3'),('1', '2', '3') 我想在每个元组中添加一个值,如下所示: INSERT INTO table (field1, field2, field3, field4) values ('1'

我有一个不难的问题,但我找不到答案

我有一个多维数组,用于通过一个查询插入数据。结果是:

INSERT INTO table (field1, field2, field3, field4) values ('1', '2', '3'),('1', '2', '3'),('1', '2', '3'),('1', '2', '3')
我想在每个元组中添加一个值,如下所示:

INSERT INTO table (field1, field2, field3, field4) values ('1', '2', '3','10'),('1', '2', '3','10'),('1', '2', '3','10'),('1', '2', '3','10')
这是代码(我也尝试过在foreach内部使用array_push):

$DataArr=array();

对于($i=1;$i),您需要将内爆数据设置为要插入的变量,然后绑定参数

$DataArr = array();
for($i = 0; $i < 4; $i++) {
  $DataArr[$i] = "1,2,3";
}

$field1_arr = !empty($DataArr[0]) ? implode(",", $DataArr[0]) : "";
$field2_arr .= !empty($DataArr[1]) ? implode(",", $DataArr[1]) : "";
$field3_arr .= !empty($DataArr[2]) ? implode(",", $DataArr[2]) : "";
$field4_arr .= !empty($DataArr[3]) ? implode(",", $DataArr[3]) : "";;

$sql = $connection->prepare("INSERT INTO table (field1, field2, field3, field4) VALUES (?,?,?,?)");
$sql->bind_param("ssss", $field1_arr, $field2_arr, $field3_arr, $field4_arr);
if($sql->execute()) {
  // It worked
}
$sql->close();
$DataArr=array();
对于($i=0;$i<4;$i++){
$DataArr[$i]=“1,2,3”;
}
$field1_arr=!empty($DataArr[0])?内爆(“,”,$DataArr[0]):”;
$field2_arr.=!empty($DataArr[1])?内爆(“,”,$DataArr[1]):”;
$field3_arr.=!empty($DataArr[2])?内爆(“,”,$DataArr[2]):”;
$field4_arr.=!empty($DataArr[3])?内爆(“,”,$DataArr[3]):”;;
$sql=$connection->prepare(“插入表(字段1、字段2、字段3、字段4)的值(?、、?、?)”;
$sql->bind_-param(“ssss”、$field1_-arr、$field2_-arr、$field3_-arr、$field4_-arr);
如果($sql->execute()){
//它起作用了
}
$sql->close();
以下是简单的解决方案
$DataArr=array();
对于($i=1;$i$value){
$tmpVal=ltrim($value,“(”);
$tmpVal=rtrim($tmpVal,“)”);
$tmpArray=爆炸(“,”,$tmpVal);
阵列推送($tmpArray,'4');
数组推送($new,“(”.introde(“,”,$tmpArray)。”);
}
$sql=“插入表(字段1、字段2、字段3、字段4)值”;
$sql.=内爆(',',$new);
打印(sql);

简单的php函数。使用
array\u push($u变量)
@robining我已经尝试过array\u push($value,“$id”)了;但不起作用请显示您的数组结构基本上我想插入一个数组,只插入一次,而不是使用foreach进行大量查询。我曾考虑创建此dataarr,其中包含4个值中的3个,但我必须添加最后一个属性,并使用mysqli进行插入。谢谢!!!!!!!
$DataArr = array();
for($i = 0; $i < 4; $i++) {
  $DataArr[$i] = "1,2,3";
}

$field1_arr = !empty($DataArr[0]) ? implode(",", $DataArr[0]) : "";
$field2_arr .= !empty($DataArr[1]) ? implode(",", $DataArr[1]) : "";
$field3_arr .= !empty($DataArr[2]) ? implode(",", $DataArr[2]) : "";
$field4_arr .= !empty($DataArr[3]) ? implode(",", $DataArr[3]) : "";;

$sql = $connection->prepare("INSERT INTO table (field1, field2, field3, field4) VALUES (?,?,?,?)");
$sql->bind_param("ssss", $field1_arr, $field2_arr, $field3_arr, $field4_arr);
if($sql->execute()) {
  // It worked
}
$sql->close();
Here is the easy solution

    $DataArr = array();
    for($i=1;$i<5;$i++){
        $fieldVal1 = 1;
        $fieldVal2 = 2;
        $fieldVal3 = 3;
        $DataArr[] = "('$fieldVal1', '$fieldVal2', '$fieldVal3')";
    }
    $id=10;
    $new=array();
    foreach ($DataArr as $key =>$value) {
        $tmpVal = ltrim($value,"(");
        $tmpVal = rtrim($tmpVal,")");
    
        $tmpArray = explode(',',$tmpVal);
        array_push($tmpArray,'4');
    
        array_push($new, "(".implode(',',$tmpArray).")");
         
    }
    
    
    $sql = "INSERT INTO table (field1, field2, field3, field4) values ";
    $sql .= implode(',', $new);
    print_r($sql);