如何在php中进行数组合并

时间:2017-07-27 12:04:26

标签: php arrays

Hello Everyone我是PHP的新手。我在php中进行服务器端验证。合并阵列时我遇到了问题。这是我的代码

我有3个功能

$pfmt_input_group               = $pfmt_job["pfmt_input_group"];
$pfmt_input_group               = (array)$pfmt_input_group;
$group_array    = $this->validate_pfmt_input_group($pfmt_input_group,$validate_array);

此函数在内部调用pfmt_input_group_function public function validate_pfmt_input_group($ pfmt_input_group,$ validate_array)     {
        $ pfmt_input_group_array = array();

    if(!empty($pfmt_input_group))
    {
        $inputs = $pfmt_input_group['inputs'];

        $job_validate_num_input = $this->validate_number($pfmt_input_group["num_input"],explode(",",$validate_array[15]));

        if($job_validate_num_input == "invalid")
        {
            array_push($pfmt_input_group_array, "Num_input value must be an integer");
        }

        $pfmt_input_validator_array = array();

        $num_input = $pfmt_input_group["num_input"];
        for ($input=0; $input < $num_input; $input++)
        {
            $pfmt_inputs            = $pfmt_input_group["inputs"][$input];
            $pfmt_inputs            = (array) $pfmt_inputs; 
            $pfmt_input             = $pfmt_inputs["pfmt_input"];
            $pfmt_input             = (array) $pfmt_input;  

            $pfmt_input_validator_array  = $this->validate_pfmt_input($pfmt_input,$validate_array);
        }
        $pfmt_input_group_array_result = array_merge((array)$pfmt_input_group_array,(array)$pfmt_input_validator_array);
    }
    return $pfmt_input_group_array_result;
}

这内部调用另一个函数

public function validate_pfmt_input($pfmt_input,$validate_array)
{           
    $pfmt_input_array = array();

    if(!empty($pfmt_input))
    {
        $job_validate_num_track = $this->validate_number($pfmt_input["num_track"],explode(",",$validate_array[18]));

        if($job_validate_num_track == "invalid")
        {
            array_push($pfmt_input_array, "Num_track value must be an integer");
        }

        $job_validate_track_name = $this->validate_empty($pfmt_input["track_name"],explode(",",$validate_array[62]));

        if($job_validate_track_name == "blank")
        {
            array_push($pfmt_input_array, "Track_Name should not be empty");
        }

        $job_validate_num_stream = $this->validate_number($pfmt_input["num_stream"],explode(",",$validate_array[326]));

        if($job_validate_num_stream == "invalid")
        {
            array_push($pfmt_input_array, "Num_stream value must be an integer");
        }

        $pfmt_input_stream_validator_array = array();

        $streamer = $pfmt_input["num_stream"];              
        for ($stream=0; $stream < $streamer ; $stream++)
        {
            $pfmt_stream                 = $pfmt_input["streamer"][$stream];
            $pfmt_stream                 = (array) $pfmt_stream;
            $pfmt_input_stream           = $pfmt_stream["pfmt_input_stream"];
            $pfmt_input_stream           = (array) $pfmt_input_stream;
            $pfmt_input_stream_validator_array = $this->validate_pfmt_input_stream($pfmt_input_stream,$validate_array);
        }
        $pfmt_input_array_result = array_merge((array)$pfmt_input_array,(array)$pfmt_input_stream_validator_array);     
    }
    return $pfmt_input_array_result;
}

这是它如何遵循所以我需要一个单一的数组,它包含所有内部错误消息我试图合并所有数组但我无法得到结果 请帮我找到这个

1 个答案:

答案 0 :(得分:0)

$pfmt_input_array_result = array_merge_recursive($pfmt_input_array,$pfmt_input_stream_validator_array);

使用此功能。