Я, наверное, совершаю действительно глупую ошибку, но не могу ее найти.
Я пытаюсь вернуть массив, и он просто не работает.
счетчик $ 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);
?>
Вы возвращаете массив, который содержит массив $temp_array
как его единственный элемент. Просто вернись $temp_array
напрямую, и это должно работать.
РЕДАКТИРОВАТЬ (спасибо @ Rizier123): Кроме того, вы назначаете результат вызова dropmaker()
в $dropdown_array[]
, который вставляет результат вызова функции в (ранее не существующий) массив $dropdown_array
, так $dropdown_array
становится массивом с результатом функции в качестве единственного элемента.
Проблема в этой линии $dropdown_array[] = dropmaker('cyclecount');
вы назначаете возвращаемое значение dropmaker()
, массив, к первому элементу массива $dropdown_array[]
вместо того, чтобы назначать $dropdown_array
к самому массиву.
Попробуйте этот код
$dropdown_array = dropmaker('cyclecount');
Удаление []
исправляет эту проблему.
Попробуйте этот код:
return array($temp_array)
вместо return $temp_array
Также $dropdown_array[]
вместо $dropdown_array
Попробуй это
<?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