Перебираем массив массивов в PHP, чтобы сгенерировать только один массив

#php #arrays

Вопрос:

Мне нужно просмотреть массив, в котором есть два массива внутри, и в каждом из них указаны идентификационные номера пользователей и суммы денег, которые каждый должен.

Моя проблема в том, что мне нужно перебирать каждый элемент, как если бы он был одним, и генерировать новый массив.

Вот массив:

 array(2) {
  [1]=>
  array {
    [1]=>
    array {
      ["u"]=> string(1) "1"
      ["pagoTotal"]=> string(6) "241.01"
    }
    [2]=>
    array {
      ["u"]=> string(1) "2"
      ["pagoTotal"]=> string(6) "110.02"
    }
    [3]=>
    array {
      ["u"]=> string(1) "3"
      ["pagoTotal"]=> string(6) "385.03"
    }
    [4]=>
    array {
      ["u"]=> string(1) "4"
      ["pagoTotal"]=> string(6) "962.04"
    }
    [5]=>
    array {
      ["u"]=> string(1) "5"
      ["pagoTotal"]=> string(6) "568.05"
    }
    [6]=>
    array {
      ["u"]=> string(1) "6"
      ["pagoTotal"]=> string(6) "664.06"
    }
    [7]=>
    array {
      ["u"]=> string(1) "7"
      ["pagoTotal"]=> string(6) "525.07"
    }
    [8]=>
    array {
      ["u"]=> string(1) "8"
      ["pagoTotal"]=> string(6) "699.08"
    }
  }
  [2]=>
  array {
    [9]=>
    array {
      ["u"]=> string(1) "9"
      ["pagoTotal"]=> string(5) "50.09"
    }
  }
}
 

Поэтому в основном мне нужно зацикливаться, как если бы они были 9 элементами вместо 8 1 в двух массивах.

Я попробовал каждый из основного массива, чтобы поместить все в один массив, как это:

   foreach ($unidades as $k => $v) {
      $a[$k]['u'] = $v['u'];
      $a[$k]['pagoTotal'] = $v['pagoTotal'];
  }
 

Но, конечно, он будет проходить через два элемента.

Комментарии:

1. Что еще вы пробовали? Всегда ли эта структура одна и та же?

Ответ №1:

Если все, что вы хотите сделать, это просмотреть каждую запись в каждом из двух массивов:

 $newArr = []; // If you want to create a new array

foreach( $unidades as $arr ) { // Each of the two outer arrays
  foreach ( $arr as $info ) { // Each of the info arrays
    echo 'Got ' . $info['u']   . ', ' . $info['pagoTotal'] . "n";

    // If you want to create a new array:
    $newArr[] = $info;
  }
}