fork download
  1. <?php
  2.  
  3. $old_arr = array(
  4. 0 => array (
  5. 0 => array(
  6. 'id' => 3,
  7. 'hoge_id' => 15,
  8. ),
  9. ),
  10. 1 => array (
  11. 0 => array(
  12. 'id' => 9,
  13. 'hoge_id' => 15,
  14. ),
  15. ),
  16. 2 => array (
  17. 0 => array(
  18. 'id' => 13,
  19. 'hoge_id' => 15,
  20. ),
  21. ),
  22. 3 => array(
  23. 0 => array(
  24. 'id' => 22,
  25. 'hoge_id' => 15,
  26. ),
  27. 1 => array(
  28. 'id' => 22,
  29. 'hoge_id' => 15,
  30. ),
  31. 2 => array(
  32. 'id' => 22,
  33. 'hoge_id' => 15,
  34. ),
  35. ),
  36. );
  37.  
  38. $new_arr = array();
  39. $i = 0;
  40. array_walk_recursive($old_arr, function($v, $k) use (&$i, &$new_arr) {
  41. $new_arr[$k === 'hoge_id' ? $i++ : $i][$k] = $v;
  42. });
  43.  
  44. print_r($new_arr);
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [id] => 3
            [hoge_id] => 15
        )

    [1] => Array
        (
            [id] => 9
            [hoge_id] => 15
        )

    [2] => Array
        (
            [id] => 13
            [hoge_id] => 15
        )

    [3] => Array
        (
            [id] => 22
            [hoge_id] => 15
        )

    [4] => Array
        (
            [id] => 22
            [hoge_id] => 15
        )

    [5] => Array
        (
            [id] => 22
            [hoge_id] => 15
        )

)