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.