首页  >  问答  >  正文

多维数组遍历,求大佬解答???

       $result=array(
           array(
               'name'=>'网络',
               '电话'=>'12345678910',
               'answer'=>
                   array(
                   'question_id'=>'第1',
                   'answer'=>'程序测试1',
                       ),
                   array(
                       'question_id'=>'第2',
                       'answer'=>'程序测试2',
                   )
           ),
           array(
               'name'=>'网络1',
               '电话'=>'12345678911',
               'answer'=>
                   array(
                       'question_id'=>'第3',
                       'answer'=>'程序测试3',
                   ),
               array(
                   'question_id'=>'第4',
                   'answer'=>'程序测试4',
               )
           )
       );
//        将上边数组遍历成下边数组,求大佬。。
       $result2=array(
           array(
               'name'=>'网络',
               '电话'=>'12345678910',
               '第1'=>'程序测试1',
               '第2'=>'程序测试2',
           ),
           array(
               'name'=>'网络1',
               '电话'=>'12345678911',
               '第3'=>'程序测试3',
               '第4'=>'程序测试4',
           )
       );

小帅小帅1838 天前1062

全部回复(3)我来回复

  • 海风

    海风2019-10-09 10:10:24

    以下程序不管$result键名怎么改都能得到你想要合并的数组:

    $arr = [];

        foreach ($result as $k => $v){

    foreach ($result[$k] as $k1 =>$v2){

    if (is_array($result[$k][$k1])){

    foreach ($result[$k][$k1] as $k2 => $v2){

    $arr[] = $v2;

    }

    $temp = [$arr[0] => $arr[1]];

    unset ($result[$k][$k1]);

    unset ($arr);

    $result[$k] = array_merge($result[$k],$temp);

    unset($temp);

    }

    }

        }


    回复
    0
  • 移动用户-6569216

    移动用户-65692162019-10-08 16:52:56

    你这个写得不清不楚的我没法帮你看

    回复
    1
  • 小帅

    谢谢你,我现在搞定了,是这样的: $result2=array(); foreach($result as $k=>$v){ $result2[$k]['name'] = $v['name']; $result2[$k]['电话'] = $v['电话']; foreach($v['answer'] as $ak=>$av){ $result2[$k][$av['question_id']] = $av['answer']; } }

    小帅 · 2019-10-08 16:57:23
  • 取消回复