我的问题如下。我有一个多维数组。我宣布我的阵列。然后,我运行一些部分填充我的数组的代码。然后我运行一个函数,其中包括修改我的数组中的一些项目。遗憾的是,这不起作用。所以我的问题很简单。这是正常的吗?如果是的话,我怎么能克服这一点。非常感谢您的回复。干杯。马克。
$list = array([0]=>
array(
[name]=>'James'
[group]=>''
)
);
my_function();
print_r($list);
function my_function(){
//some code here
$list[0]['group'] = 'groupA';
}
答案 0 :(得分: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();
答案 1 :(得分: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;
}
答案 2 :(得分: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';
}
答案 3 :(得分:0)
在内部数组索引中添加'
array(
'name'=>'James'
'group'=>''
)