我将此数组作为查询结果:
[0]=>
array(2) {
["id_iscr"]=>
int(2)
["id_pettorina"]=>
NULL
}
[1]=>
array(2) {
["id_iscr"]=>
int(3)
["id_pettorina"]=>
NULL
}
[2]=>
array(2) {
["id_iscr"]=>
int(5)
["id_pettorina"]=>
NULL
}
[3]=>
array(2) {
["id_iscr"]=>
int(7)
["id_pettorina"]=>
NULL
}
...
这是一个不同值的数组
[0]=>
int(125)
[1]=>
int(162)
[2]=>
int(65)
[3]=>
int(98)
...
两个数组都有相同数量的元素; 我的问题是:用哪种方式可以用socond one的每个值填充第一个数组的每个NULL值并插入mysql db? 提前谢谢。
答案 0 :(得分:0)
我没有测试代码,但我在这里做的是:循环整个array1,验证值是否为null,如果是,我从array2得到相同的位置并填入id_pettorina
定位并保存到名为$resultingArray
的新结果数组中。
<?php
$resultingArray = array();
foreach ($array1 as $k => $value) {
if ($value["id_pettorina"] == null) {
$value["id_pettorina"] = $array2[$k];
}
$resultingArray[] = $value;
//Here in can insert into database, according to your schema
}
在评论的行中,您可以使用$resultingArray
数组中的值在数据库中插入$value
的数据。例如:$query = "INSERT INTO yourdbname SET id_pettorina = '".$value["id_pettorina"]."'";
。然后,您可以将此查询传递到您的语句并执行。
答案 1 :(得分:0)
@sihciv只需在foreach()中使用if条件,如下所示:
<?php
$arr1 = array(
array(
"id_iscr"=> 2,
"id_pettorina"=> NULL
),
array(
"id_iscr"=> 3,
"id_pettorina"=> NULL
),
array(
"id_iscr"=> 5,
"id_pettorina"=> NULL
),
array(
"id_iscr"=> 7,
"id_pettorina"=> NULL
)
);
echo "<pre>";
print_r($arr1); //array before
$arr2 = array(125,162,65,98);
$i = 0;
foreach($arr1 as $key => $value){
foreach ($value as $key1 => $value1) {
if($value1 == null){
if(isset($arr2[$i])){
$arr1[$key][$key1] = $arr2[$i];
$i++;
}
}
}
}
echo "<pre>";
print_r($arr1); //array after
答案 2 :(得分:-1)
尝试:
for ($i=0; i<count(array); i++)
array[i]['id_pettorina'] = other_array[i];
将其插入MySQL取决于您的数据库API