Объединение массивов в один массив из цикла while

#php #arrays #merge

#php #массивы #слияние

Вопрос:

Мне нужна информация для переноса из базы данных в массивы, а затем создания одного массива. Итак, я написал следующий код:

      $sql0 = "SELECT * FROM ".$working_table." ORDER by id ASC";
        $result = mysqli_query($conn, $sql0);
        $num_rows = mysqli_num_rows($result);

        while($row = mysqli_fetch_array($result)){

     ${"emails_arr$row[id]"} = explode(",",$row['station_email']);

     echo print_r(${"emails_arr$row[id]"})."<br>";
 }

        $sql0 = "SELECT * FROM ".$working_table." ORDER by id ASC";
        $result = mysqli_query($conn, $sql0);
        $num_rows = mysqli_num_rows($result);

        while($row = mysqli_fetch_array($result)){

        $result_array = array_merge(${"emails_arr$row[id]"});

 }
        echo print_r($result_array);
  

сложность в том, что я не знаю, как объединить массивы в один массив из цикла while: $result_array = array_merge(${"emails_arr$row[id]"});
отображается только последний массив, остальные массивы переписываются.

Спасибо, ребята!

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

1. $result_array = array_merge($result_array, ${"emails_arr$row[id]"}); Но вам нужно позаботиться о том, чтобы не перезаписывать существующие ключи…

2. Попробуйте использовать это $oldArray[]= $oldArray;

Ответ №1:

Измените код цикла while на этот

 while($row = mysqli_fetch_array($result)){

        $result_array[] = array_merge(${"emails_arr$row[id]"});

 }
  

Обратите внимание на квадратные скобки.

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

1. это должно сработать, но это создает многомерный массив, мне нужно просто объединить все массивы, сгенерированные loopname, в один 🙂