我可能犯了一个非常愚蠢的错误,但我找不到它。
我正在尝试返回一个数组,但它无法正常工作。
$ 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 :(得分:6)
您将返回一个数组,其中包含数组$temp_array
作为唯一元素。只需直接返回$temp_array
,就可以了。
编辑(感谢@ Rizier123):此外,您将调用dropmaker()
的结果分配给$dropdown_array[]
,将函数调用的结果插入到$dropdown_array
(以前不存在)数组$dropdown_array
,因此{{1}}成为一个数组,函数结果作为唯一元素。
答案 1 :(得分: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
答案 2 :(得分:1)
问题是此行$dropdown_array[] = dropmaker('cyclecount');
您将dropmaker()
(一个数组)的返回值分配给数组$dropdown_array[]
的第一个元素,而不是分配{{1}到数组本身。
试试此代码
$dropdown_array
删除$dropdown_array = dropmaker('cyclecount');
正在解决此问题。
答案 3 :(得分:1)
试用此代码:
return array($temp_array)
代替return $temp_array
$dropdown_array[]
代替$dropdown_array