附加elts后,php数组为null

Im having problems with appending items to array. First I init the empty array and then I want to put elemnts inside.

But, result on the end is empty array.

$aditivs = array();

function handle_Aditiv($ArrVal){
  $id_aditiv = $ArrVal['id'];
  $code = $ArrVal['code'];
  $arrLocal = array();
  $arrLocal[] = $id_aditiv;
  $arrLocal[] = $code;
  $aditivs [] = $arrLocal;
 //var_dump($aditivs);
 echo "Adt : $id_aditiv,$code 
";
}

var_dump($aditivs); //this print out empty array

insted of:

$aditivs [] = $arrLocal;

I use also this, but the result is the same

array_push($aditivs, $arrLocal);

So where and what am I doing wrong?

test.php:

<?php 
$aditivs = array();


function handle_Aditiv($ArrVal){
    Global $aditivs;
    $aditivs[] = array($ArrVal['id'], $ArrVal['code']);
    return(0);
}

$arr = array('id'=>1, 'code'=>"code");
handle_Aditiv($arr);
var_dump($aditivs); 

 ?>

run:

>php test.php

output:

array(1) {
  [0] =>
  array(2) {
    [0] =>
    int(1)
    [1] =>
    string(4) "code"
  }
}

BUT:

Technically, the best way is using reference:

<?php 
$aditivs = array();


function handle_Aditiv(&$accumulator, $input){
    $accumulator[] = array($input['id'], $input['code']);
}

$arr = array('id'=>1, 'code'=>"code");
handle_Aditiv($aditivs, $arr);

var_dump($aditivs); 

?>

For your case there is no difference, but in long, complex code it's makes the idea much clear.