php将数组键值相同的数组合并数组为一个数组

Mr_Troy
  • 5
新手上路,请多包涵
Array (
    [question_id] => Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 4 [4] => 4 [5] => 4 [6] => 4 [7] => 4 ) 
    [result_branch] => Array ( [0] => 126 [1] => 130[2] => 134 [3] => 1232 [4] => 128134 [5] => 16 [6] => 128134 [7] => 12136 
    [text] => Array ( [0] => 3213 [1] => qweq [2] => wdas [3] => d [4] => cxzc [5] => xzczx [6] => czx [7] => saed ) 
)

输出:

Array (array([question_id]=>4,[result_branch]=>126,[text]=>3213 ),
    array([question_id]=>4,[result_branch]=>130,[text]=>qweq ),
    array([question_id]=>4,[result_branch]=>134 ,[text]=>wdas ),
    array([question_id]=>4,[result_branch]=>1232 ,[text]=>d ),
...
    array([question_id]=>4,[result_branch]=>12136 ,[text]=>saed ),

)
回复
阅读 2.7k
1 个回答
joyvw
  • 860

$arr = Array (
    'question_id' => Array ( 4, 4, 4, 4, 4),
    'result_branch' => Array (126, 130, 134 ,1232 ,128134),
    'text' => Array (3213,'qweq', 'wdas', 'd ','cxzc' )
);

$idNum = count($arr['question_id']);
$branchNum = count($arr['result_branch']);
$textNum = count($arr['text']);

$countMax = ($idNum > $branchNum ? $idNum : $branchNum) > $textNum ? ($idNum > $branchNum ? $idNum : $branchNum) : $textNum;

$result = array();
for($i=0; $i < $countMax ; $i++){
    $temp = array(
        'question_id' => isset($arr['question_id'][$i]) ? $arr['question_id'][$i] : '',
        'result_branch' =>  isset($arr['result_branch'][$i]) ? $arr['result_branch'][$i] : '',
        'text' =>  isset($arr['text'][$i]) ? $arr['text'][$i] : ''
    );
    $result[] = $temp;
}
echo "<pre>";
print_r($result);
echo "</pre>";

图片描述
简单的写了一段,感觉不是很好。

宣传栏