php没有返回数组
我可能犯了一个非常愚蠢的错误,但我找不到它 我试图返回一个数组,但它不起作用 $temp_数组的计数为33,这是正确的数字,$dropdown_数组的计数为1。我做错了什么php没有返回数组,php,arrays,return-value,Php,Arrays,Return Value,我可能犯了一个非常愚蠢的错误,但我找不到它 我试图返回一个数组,但它不起作用 $temp_数组的计数为33,这是正确的数字,$dropdown_数组的计数为1。我做错了什么 <?php function dropmaker($stuff) { require '../connect.php'; $dropdown_query = "SELECT $stuff FROM maps_sku_groups GROUP BY $stuff;"; $dropdown_result = mysql
<?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\u array
作为其唯一元素。只要直接返回$temp_array
,它就可以工作了
编辑(感谢@Rizier123):此外,您将调用dropmaker()
的结果分配给$dropdown\u array[]
,这将函数调用的结果插入(以前不存在的)数组$dropdown\u array
,因此,$dropdown\u array
成为一个数组,函数result是它唯一的元素。试试这个
<?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);
?>
您的函数返回数组的数组,因为您已经编写了返回数组($temp_array)代码>
同时,您将此返回值赋给数组$dropdown_数组的第一个索引,因此此变量的计数保持为1问题是这行$dropdown_数组[]=dropmaker('cyclecount')
您正在将数组dropmaker()
的返回值分配给数组的第一个元素$dropdown\u array[]
,而不是将$dropdown\u array
分配给数组本身
试试这个代码
$dropdown\u array=dropmaker('cyclecoount')代码>
删除[]
可以解决此问题 请尝试以下代码:
返回数组($temp\u数组)
而不是返回$temp\u数组
另外,$dropdown\u array[]
而不是$dropdown\u array
我不会在函数中包含文件!或者至少使用:require\u oncedid您是否尝试使用var\u dump($arrayname)或print\r($arrayname)查看结果?另外,正如@Rizier123所提到的,不要在函数中包含连接。在脚本顶部需要一次,这可能会导致bug。如果没有文件,我似乎根本无法让函数工作。这对我来说也是毫无意义的……而且他也不必写这个:$dropdown\u array[]
只$dropdown\u array
e。g一个简单的var\u dump($dropdown\u array)
会显示这个问题。当这样做时,它仍然是33&1,var\u dump给出了这样的结果:(比我以前的迭代少了一个级别。)array(size=1)0=>array(size=33)