用php中的另一个数组的值填充multidimesional数组

时间:2017-03-30 16:04:21

标签: php arrays multidimensional-array insert associative-array

我将此数组作为查询结果:

[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? 提前谢谢。

3 个答案:

答案 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