我在将项目附加到数组时遇到问题。 首先,我初始化空数组,然后我想将元素放入其中。
但是,最后的结果是空数组。
$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 \r\n";
}
var_dump($aditivs); //this print out empty array
绝对:
$aditivs [] = $arrLocal;
我也使用了这个,但结果是相同的
array_push($aditivs, $arrLocal);
那我在哪里以及我做错了什么?
答案 0 :(得分:0)
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);
?>
运行:
>php test.php
输出:
array(1) {
[0] =>
array(2) {
[0] =>
int(1)
[1] =>
string(4) "code"
}
}
<强> BUT:强>
从技术上讲,最好的方法是使用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);
?>
对于你的情况没有区别,但是在漫长而复杂的代码中,它使这个想法变得清晰。