Заполнение массива в цикле foreach

340
20 октября 2017, 15:39

чуть-чуть глупый вопрос.

Пытаюсь заполнить массив выборкой из БД таким образом:

foreach ($sql_student as $key) {
    $students = array($k => array("name" => $key['name'],"id" => $key['id']));
$k++;
}

$sql_student содержит следующее:

array(3) {
  [0]=>
  array(3) {
    ["id"]=>
    string(2) "15"
    ["name"]=>
    string(44) "Иванов"
    ["groupp"]=>
    string(1) "5"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(2) "18"
    ["name"]=>
    string(8) "Кекк"
    ["groupp"]=>
    string(1) "5"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(2) "19"
    ["name"]=>
    string(6) "лал"
    ["groupp"]=>
    string(1) "5"
  }
}

соответственно, когда записываю в массив $students, то каждый раз он перезаписывается и остается только последняя запись. Уже глаза не видят, где я не так сделал. Помогите, пожалуйста:)

Answer 1

Вы в каждом шаге пересоздаете массив заново. Инициализируйте пустой массив перед циклом. Собственно как-то так:

$students = [];
foreach ($sql_student as $key) {
  $students[$k] = [
    "name" = $key['name'],
    "id" = $key['id']
  ];
  $k++;
}
READ ALSO
php date st, nd, rd, th

php date st, nd, rd, th

Модификатор S в функции date() - Английский суффикс порядкового числительного дня месяца, 2 символа st, nd, rd или thПрименяется совместно с j

275
Почему данные не передаются в шаблон?

Почему данные не передаются в шаблон?

В чем может быть причина и что я не так делаю?

279
Подставить значение переменной в echo

Подставить значение переменной в echo

Формирую значение переменной из других переменных:

217