php没有返回数组

时间:2014-12-02 16:27:08

标签: php arrays return-value

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

我正在尝试返回一个数组,但它无法正常工作。

$ 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);
?>

4 个答案:

答案 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