Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中编写修改数组的函数?_Php_Arrays_Function_Arguments - Fatal编程技术网

如何在PHP中编写修改数组的函数?

如何在PHP中编写修改数组的函数?,php,arrays,function,arguments,Php,Arrays,Function,Arguments,我希望有一个函数,它将数组作为输入,并更改数组的一些值(在我的例子中,数组是$\u SESSION,但我认为它实际上并不重要) 我该怎么做 已添加 听起来很琐碎。但事实并非如此。我只想为数组设置某些值。例如,我希望我的函数更改$\u会话['x']和$\u会话['y']。据我所知,如果我将数组作为参数传递,那么参数的任何更改都不会修改原始数组。例如: function change_array($x) { $x[0] = 100; } $x = array(1,2,3); change_a

我希望有一个函数,它将数组作为输入,并更改数组的一些值(在我的例子中,数组是$\u SESSION,但我认为它实际上并不重要)

我该怎么做


已添加

听起来很琐碎。但事实并非如此。我只想为数组设置某些值。例如,我希望我的函数更改$\u会话['x']和$\u会话['y']。据我所知,如果我将数组作为参数传递,那么参数的任何更改都不会修改原始数组。例如:

function change_array($x) {
   $x[0] = 100;
}
$x = array(1,2,3);
change_array($x);
它不会改变$x


增加了2个

为什么我的问题被否决了?我认为这个问题并非微不足道,尽管它很短。我还认为我已经给出了所有相关的细节。据我所知(多亏了一个答案),这是关于“传递参考”。此外,我想修改$\u seision数组这一事实使它有点不同。

您指的是它的调用:

这很简单,就像

function changearray(&$arr){
     $arr['x'] = 'y';
}
你可以这样称呼它:

changearray($_SESSION);
编码如下:-

$_SESSION['index_1'] = 'value 1';
$_SESSION['index_2'] = 'value 2';
如果要将索引“
index_2
”的值更改为值“
value 2 changed
”,只需编写:-

$_SESSION['index_2'] = 'value 2 changed'; 

希望有帮助。

请更具体一些。您计划在数组上执行哪些操作?为什么要将
$\u SESSION
作为参数传递:O?!?它已经是全球性的了!!!正如我在最初的帖子中提到的,我想要一个函数,因为生成一个新值所需的计算序列很大(所以,我想把所有的东西都放在一个函数中)。我想这正是我想要的。有些人说$\u会话是一个“特殊”数组(因为它是全局的)。这是否意味着我应该以不同的方式对待它(例如,我不应该通过引用来传递它。而且,我不需要将它作为一个论点来传递)?他们对它进行全局授权,你不需要通过它,但我想学习你如何在phpThanks中通过引用传递很多!很酷,你可以从我简短的原始问题中得到我所需要的。谢谢
function change_array() {

     global $x; /*this will tell the function to work on the array 'x' out of the function itself.*/
     $x[0] = 100;

}