dongshan2680 2012-05-15 10:23
浏览 14

有没有一种快速,简单的方法来反转PHP中的嵌套数组?

By inverse I mean from the following:

$my_array = array(
    "header" => array(
        0 => "Header 1",
        1 => "Header 2"
    ),
    "paragraph" => array(
        0 => "Paragraph 1",
        1 => "Paragraph 2"
    )
);

to this:

$my_new_array = array(
    0 => array(
        "header" => "Header 1",
        "paragraph" => "Paragraph 1"
    ),
    1 => array(
        "header" => "Header 2",
        "paragraph" => "Paragraph 2"
    )
);

I know that I can do this:

$my_new_array = array();
foreach ( $my_array["header"] as $key => $header ){
    if ( !is_array( $my_new_array[ $key ] ) ){
        $my_new_array[ $key ] = array();
    }
    $my_new_array[ $key ]["header"] = $header;
}
foreach ( $my_array["paragraph"] as $key => $paragraph ){
    $my_new_array[ $key ]["paragraph"] = $paragraph;
}

But I was wondering if there was a quick PHP function to do this or a more optimal way. I couldn't find any such function in the PHP function directory, and i can't think of a more optimal way!

Cheers

  • 写回答

3条回答 默认 最新

  • donglu3087 2012-05-15 10:32
    关注

    This would work without using concrete keys:

    $new = array();
    foreach ($my_array as $key => $values) {
      foreach ($values as $idx => $value) {
        $new[$idx][$key] = $value;
      }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看