php从函数推送到数组

php从函数推送到数组,php,arrays,function,push,Php,Arrays,Function,Push,祝大家好 我需要用其他数组填充“全局”数组。例如,我编写了以下函数: <?php function f($ar=array(), $gl=array()){ $gl[0]=array($ar[1]); } $globals=array(); $array_example=array('foo', 'bar'); f($array_example, $globals); print_r($globals); //$globals is empty! ?> 请帮帮我。我不明

祝大家好

我需要用其他数组填充“全局”数组。例如,我编写了以下函数:

<?php
function f($ar=array(), $gl=array()){
    $gl[0]=array($ar[1]);
}
$globals=array();
$array_example=array('foo', 'bar');
f($array_example, $globals);
print_r($globals); //$globals is empty!
?>

请帮帮我。我不明白为什么var$globals是空的


谢谢

我认为您应该使用
传递数组:

function f($ar = array(), &$gl = array())
{
    $gl[0] = array($ar[1]);
}

$globals = array();
$array_example = array('foo', 'bar');
f($array_example, $globals);
print_r($globals);
将为您提供:

Array
(
    [0] => Array
        (
            [0] => bar
        )

)

首先,您应该修改
函数
以返回值,并为要打印的值分配返回值。 您正在打印
$global
,它是一个空的
数组
。 所以你的代码应该是这样的

<?php
    function f($ar = array(), $gl = array()){
        $gl[0] = array($ar[1]);
        return $gl;
    }
    $globals=array();
    $array_example=array('foo', 'bar');

    $globals = f($array_example, $globals);
    print_r($globals); 

    // prints out Array ( [0] => Array ( [0] => bar ) )
?>

函数始终对局部变量起作用,您希望使用它们的局部变量作用域来避免函数失效。 检查以下代码,我希望它将帮助你

function f($ar=array(), $gl=array()){
    return array($ar[1]);
}
$globals=array();
$array_example=array('foo', 'bar');
$tmpArray = f($array_example, $globals);
$globals[0]=$tmpArray;
print_r($globals); 

函数f($ar=array(),&$gl=array())——?您需要做什么?我需要用其他数组的值填充$globals数组。不,先生。但是每个函数调用都会用一个新值填充数组。谢谢:)但是$globals的每个事件新索引都是未知的。$array\u示例是从MySQL获取循环中的数据