0

我的问题如下。我有一个多维数组。我声明我的数组。然后,我运行一些代码来部分填充我的数组。然后我运行一个函数,其中应该从函数中修改我的数组中的某些项目。不幸的是,这不起作用。所以我的问题很简单。正常吗?如果是,我该如何克服这一点。非常感谢您的回复。干杯。马克。

$list = array([0]=>
                   array(
                         [name]=>'James' 
                         [group]=>''
                         )
             ); 



my_function();
print_r($list); 

function my_function(){
     //some code here
     $list[0]['group'] = 'groupA';
}
4

4 回答 4

2

您可以通过引用将数组传递给函数

my_function(&$list) {

    $list[0]['group'] = 'groupA';
}

$list = /*...*/
my_function($list);

或者简单地从函数返回数组

my_function($list) {

    $list[0]['group'] = 'groupA';
    return $list;
}

$list = /*...*/
$list = my_function($list);

或使用全局

my_function() {

    global $list;
    $list[0]['group'] = 'groupA';
}

$list = /*...*/
my_function();
于 2012-04-14T17:21:59.170 回答
1

像这样的东西:

$list = array( 0 =>
                   array(
                         'name'=>'James' 
                         'group'=>''
                         )
             ); 



my_function($list);
print_r($list); 

function my_function(&$list){
     //some code here
     $list[0]['group'] = 'groupA';
}

或者:

$list = array(0 =>
                   array(
                         'name'=>'James' 
                         'group'=>''
                         )
             ); 



$list = my_function($list);
print_r($list); 

function my_function($list){
     //some code here
     $list[0]['group'] = 'groupA';
     return $list;
}
于 2012-04-14T17:20:19.643 回答
1

在您的情况下,数组没有更改,因为它在全局范围内,并且与其他语言不同,PHP 不提供从函数内对全局范围的自动访问。所以你必须这样做:

function my_function(){
     global $list;
     //some code here
     $list[0]['group'] = 'groupA';
}

但更好的是,通过引用函数将数组作为参数传递

function my_function(&$list){
     //some code here
     $list[0]['group'] = 'groupA';
}
于 2012-04-14T17:21:49.287 回答
0

在内部数组索引中添加 '

 array(
                         'name'=>'James' 
                         'group'=>''
      )
于 2012-04-14T17:20:17.550 回答