Подтвердить что ты не робот

Как я могу написать в PHP функцию, которая модифицирует массив?

Я хотел бы иметь функцию, которая принимает массив в качестве входных данных и изменяет некоторые значения массива (в моем случае массив равен $_SESSION, но я думаю, что он действительно не подходит).

Как я могу это сделать?


ADDED

Это звучит тривиально. Но это не так. Я просто хочу установить определенные значения в массив. Например, я хочу, чтобы моя функция меняла $_SESSION ['x'] и $_SESSION ['y']. Насколько я знаю, если я передаю массив в качестве аргумента, любые изменения аргумента не изменят исходный массив. Например:

function change_array($x) {
   $x[0] = 100;
}
$x = array(1,2,3);
change_array($x);

Он не изменит значение $x.


ADDED 2

Почему мой вопрос проголосовали? Я думаю, что этот вопрос не настолько тривиальный, несмотря на то, что он короткий. Я также думаю, что я дал всю необходимую информацию. Насколько я понял (благодаря одному ответу) речь идет о "передаче ссылки". Более того, тот факт, что я хочу изменить массив $_SEESION, немного отличается.

4b9b3361

Ответ 1

что вы имеете в виду: Передача по ссылке

его очень простое, как

function changearray(&$arr){
     $arr['x'] = 'y';
}

вы можете называть это следующим образом:

changearray($_SESSION);

Ответ 2

Кодирование выглядит так: -

$_SESSION['index_1'] = 'value 1';
$_SESSION['index_2'] = 'value 2';

Если вы хотите изменить значение для индекса "index_2" на значение "value 2 changed", вы просто просто напишите: -

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

Надеюсь, что это поможет.

Ответ 3

function change_array() {

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

}