将阵列合并到单个外部循环中

时间:2015-05-20 12:43:12

标签: php arrays

我正在尝试执行以下操作。我在数组中有以下数组“item_code”:

Array
(
    [name] => Wes
    [email] => no@no.com
    [duration] => 2 days
    [comment] => stuff
    [item_code] => Array
        (
            [0] => USE4220HP9,USE4220HP8,USE4220HP7,USE4220HP6,USE4220HP5
            [1] => USE0463V8E,USE1066KYN,USE0463V7S,USE1066KYS,USE1066KYK

        )

)

item_code数组可能有多个键 - 超过两个。我想要做的是将item_code数组转换为单个数组,其中每个USExxxxx值是数组中的单个键。

我理解如何使用类似foreach的内容并将示例转换为:

$serial = $_POST['item_code'];

foreach ($serial as $sn => $id)
{
    $finalsn = ($serial[$sn]);
    print_r(explode(',', $finalsn));
}

结果

Array
(
    [0] => USE4220HP9
    [1] => USE4220HP8
    [2] => USE4220HP7
    [3] => USE4220HP6
    [4] => USE4220HP5
)
Array
(
    [0] => USE0463V8E
    [1] => USE1066KYN
    [2] => USE0463V7S
    [3] => USE1066KYS
    [4] => USE1066KYK
)

但是如何将这两个数组合并为一个数组呢?我需要将它作为循环外的单个数组,以便我可以将值传递给单个mysql查询。我尝试使用array_merge但没有运气。

3 个答案:

答案 0 :(得分:0)

也许我在这里误解了一些东西,但是这个$testArr包含迭代后的所有USE数字。

    $serial = $_POST['item_code'];
    $finalArr = array();
    foreach ($serial as $sn => $id)
    {
        $tmpStr = ($serial[$sn]);
        $tmpArr= explode(',', $tmpStr);
        array_push($finalArr,$tmpArr);
    }

答案 1 :(得分:0)

$serial = $_POST['item_code'];
$final_arr=array()
foreach ($serial as $sn => $id)
{
    $finalsn = ($serial[$sn]);
    $temp_arr=(explode(',', $finalsn));

    foreach($temp_arr as $temp){
          $final_arr[]=$temp;
    }

}

print_r($final_arr;)

答案 2 :(得分:0)

您可以使用array_merge

将其合并到最终数组中
$serial = $_POST['item_code'];
$finalArray = Array();

foreach ($serial as $sn => $id)
{
    $finalsn = ($serial[$sn]);
    print_r(explode(',', $finalsn));
    $finalArray = array_merge($finalArray, explode(',', $finalsn));
}