php не возвращает массив

Я, наверное, совершаю действительно глупую ошибку, но не могу ее найти.

Я пытаюсь вернуть массив, и он просто не работает.

счетчик $ temp_array равен 33, что является правильным числом, счетчик $ dropdown_array равен 1. Что я делаю не так?

<?php
function dropmaker($stuff) {

require '../connect.php';

$dropdown_query = "SELECT $stuff FROM maps_sku_groups GROUP BY $stuff;";
$dropdown_result = mysqli_query($link, $dropdown_query);
while ($data = mysqli_fetch_array($dropdown_result)) {
$temp_array[] = $data[$stuff];
}
echo count($temp_array);
return array($temp_array);
}?>

<?php
$dropdown_array[] = dropmaker('cyclecount');
echo count($dropdown_array);
?>

0

Решение

Вы возвращаете массив, который содержит массив $temp_array как его единственный элемент. Просто вернись $temp_array напрямую, и это должно работать.

РЕДАКТИРОВАТЬ (спасибо @ Rizier123): Кроме того, вы назначаете результат вызова dropmaker() в $dropdown_array[], который вставляет результат вызова функции в (ранее не существующий) массив $dropdown_array, так $dropdown_array становится массивом с результатом функции в качестве единственного элемента.

6

Другие решения

Проблема в этой линии $dropdown_array[] = dropmaker('cyclecount'); вы назначаете возвращаемое значение dropmaker(), массив, к первому элементу массива $dropdown_array[] вместо того, чтобы назначать $dropdown_array к самому массиву.

Попробуйте этот код

$dropdown_array = dropmaker('cyclecount');

Удаление [] исправляет эту проблему.

1

Попробуйте этот код:

return array($temp_array) вместо return $temp_array

Также $dropdown_array[] вместо $dropdown_array

1

Попробуй это

<?php
function dropmaker($stuff) {

require '../connect.php';

$dropdown_query = "SELECT $stuff FROM maps_sku_groups GROUP BY $stuff;";
$dropdown_result = mysqli_query($link, $dropdown_query);
while ($data = mysqli_fetch_array($dropdown_result)) {
$temp_array[] = $data[$stuff];
}
echo count($temp_array);
return $temp_array;
}?>

<?php
$dropdown_array = dropmaker('cyclecount');
echo count($dropdown_array);
?>

Ваша функция возвращает массив массива, так как вы написали return array($temp_array);

А также вы присваиваете это возвращаемое значение первому индексу массива $ dropdown_array, чтобы счетчик этой переменной оставался 1

1
По вопросам рекламы [email protected]