Php 将元素添加到带有引用的数组中
我正在尝试在我的项目中构建一个函数,以简化数组操作 我想通过传递引用来做这件事。希望能以更加高效和节约资源的方式Php 将元素添加到带有引用的数组中,php,arrays,pass-by-reference,Php,Arrays,Pass By Reference,我正在尝试在我的项目中构建一个函数,以简化数组操作 我想通过传递引用来做这件事。希望能以更加高效和节约资源的方式 function add_element ($element=array(),&$data) { if(!empty($data)) { $data += $element; } return true; } // $element can be array('one','two') or array('color'=>'blu
function add_element ($element=array(),&$data) {
if(!empty($data)) {
$data += $element;
}
return true;
}
// $element can be array('one','two') or array('color'=>'blue','type'=>'card')
我对推荐人没有经验,谢谢你的提示。试试看
array_push($data, $element);
array_push函数将新数据添加到数组的末尾
请在此处查看详细信息:
如何使用:
$data[]=$element代码>
而不是
$data+=$element代码>
(假设您不能使用array\u push)。我相信这将产生您所期望的效果。我们传入原始数组作为引用,它会将传递给它的任何数据添加到原始数组中
function add_element (&$original_array = array(), $data) {
// Cast an array if it isn't already
!is_array($data) ? (array)$data : null;
if(!empty($data)) {
$original_array = $original_array + $data;
}
return true;
}
$names_array = array("first_name" => "bob");
$data_to_add = array("second_name" => "fred");
// Add new variable
add_element($names_array, $data_to_add);
// Show the contents
print_r($names_array);
现场观看:
然而,我刚刚把你发布的内容作为起点。以上与以下基本相同,无需特殊功能:
$names_array = array("first_name" => "bob");
$data_to_add = array("second_name" => "fred");
// Add new variable
$names_array = $names_array + $data_to_add;
// Show the contents
print_r($names_array);
在这里查看:已经有一个函数名为array\u push()
,用于向数组添加新内容。@Coulton我想用key添加元素。比如,<代码>$arr=array('0'=>'zero','1'=>'one','2'=>'two')代码>我需要添加$element=array('21'=>'twentyone','45'=>'fourthy-five')代码>当数组推送时($arr,$element)
它创建了额外的索引[3]
[3]=>数组([21]…
我需要[2]=>两个[21]=>Twentyne
。不错,我没有意识到你可以这么做,我已经使用PHP有一段时间了。这只在你需要数组的数字键时才有用。$data[]=$element;
和$data[]=array()
不是一回事!我可以..但在我想写的添加元素($add,$data);
和移动的代码中,我不想做$data=add_元素($add,$data);
。这就是为什么我想使用引用。@Alexandre N.array\u push()将按您希望的方式工作,您将引用传递给it@Coulton是的,但请看我对你的评论的最新回复。@Coulton我想用key添加元素。例如;$arr=array('0'=>'zero','1'=>'one','2'=>'two');
我需要添加$element=array('21'=>'twentyane','45'=>'fourthy-five'))
当array\u push($arr,$element);
它会创建额外的索引[3]
[3]=>数组([21]…
我需要[2]=>两个,[21]=>二十一个…
我给这个问题添加了注释。这正是我想要的。谢谢你努力对我的问题有一个坚实的理解。没问题,最好:)我在函数的开头添加了一行,请检查您是否希望更新您的回复。因为我将使用它作为帮助程序,它必须帮助我。当我说add_element($create_variable,$elements);
它也应该创建它:)所以这行:isset($data)|$data=array()代码>
function add_element($element=array(), &$data) {
if(!empty($element) && !empty($data)) {
$data = array_merge($data, $element);
}
return true;
}
$test = array(0=>'zero');
add_element(array(1=>'one'), $test);
print_r($test);