如果数量子数组不同,我会问如何插入数组,如果$arrays != 3,我有问题,因为在子数组中 2 在数组 1 中
<?php
$arrays=array(
array('a','b'),
array('a','b','c'),
array('a','b','c')
);
$per=0;
for ($h=0; $h < count($arrays); $h++) {
if (count($arrays) > $per) {
$per= count($arrays);
}
}
$koneksi = new mysqli("127.0.0.1","root","","data");
$nil=array();
foreach ($arrays as $data) {
foreach ($data as $key => $value) {
$data[$key] = $data[$key];
}
$nil[]="('".implode("', '",$data). "')";
}
$insert="INSERT INTO datams (data1,data2,data3) VALUES ".implode(', ',$nil);
$queri=mysqli_query($koneksi, $insert);
if ($queri == true){
echo 'upload done'.PHP_EOL;
} else {
echo 'fail upload'.PHP_EOL;
}
如果子数组相同,我无法插入数据,可以帮助我吗?
您必须使数组具有相同的长度。
创建一个空数组,然后循环现有数组,使用array_replace
添加缺失值。之后,您可以插入它们。
$empty=['' , '' , ''];
foreach($array as $key => $tmp){
$array[$key] = array_replace($empty,$tmp);
// This replaces the values of $empty with those of $array that are set:
// ['','',''] replace wihh ['a','b','c'] gives ['a','b','c']
// ['','',''] replace with ['a','b'] gives ['a','b','']
}
你最终会得到:
$arrays=array(
array('a','b','' ),
array('a','b','c'),
array('a','b','c')
);
现在您可以插入值;
编辑
为了使它更灵活(即原始数组不断变化(,您首先必须找到$array
中最长的数组的长度。
$max=0;
foreach($array as $a) {
$c = count($a);
if( $c > $max) $max = $c;
}
$empty=array_fill(0,$max,'');