Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php没有返回数组_Php_Arrays_Return Value - Fatal编程技术网

php没有返回数组

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

我可能犯了一个非常愚蠢的错误,但我找不到它

我试图返回一个数组,但它不起作用

$temp_数组的计数为33,这是正确的数字,$dropdown_数组的计数为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\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)