【问题标题】:Why is this function to add array inside an array not working?为什么这个在数组中添加数组的函数不起作用?
【发布时间】:2019-10-28 16:31:07
【问题描述】:

我创建了一个数组。然后我调用了一个函数。该函数在该数组中添加另一个数组。但是当我print_r 主数组时,它返回一个空数组。请注意,使用function的原因是我打算多次调用它。

PHP:

$myarray = array();
myfunc();
function myfunc() {
    $a = 1;
    $b = "my name";
    $myarray[] = array(
        'a'=>$a,
        'b'=>$b
    );
}
print_r($myarray);

【问题讨论】:

    标签: php arrays function multidimensional-array nested


    【解决方案1】:

    实际上,您必须从函数中获取return 数组,将其捕获到变量并打印该变量。

    <?php
    function myfunc() {
        $myarray[] = array(
            'a'=>1,
            'b'=>"my name"
        );
    
        return $myarray;
    }
    $myarray = myfunc();
    print_r($myarray);
    

    输出:-https://3v4l.org/7vCmC

    或者你可以使用 Passing by Reference

    <?php
    $myarray = array();
    function myfunc(&$myarray) {
        $myarray[] = array(
            'a'=>1,
            'b'=>"my name"
        );
    }
    myfunc($myarray);
    print_r($myarray);
    

    输出:-https://3v4l.org/R9JYL

    注意:- 函数内部的变量与其外部的相同变量没有关系,直到它作为参考传递[第二个答案]。这属于功能范围

    【讨论】:

    • @AlivetoDie 非常感谢,我使用的是通过引用传递(第二个选项)。我不知道为什么人们不赞成这个问题。 :D
    猜你喜欢
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多