我正在尝试构建一个函数,以便在我的项目中更容易地进行数组操作。
我想通过传递参考来做到这一点。希望以更高效和节省资源的方式。
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')
我对参考文献没有经验,感谢任何提示。
答案 0 :(得分:1)
尝试
array_push($data, $element);
array_push函数将新数据添加到数组的末尾。
答案 1 :(得分:1)
我相信这会产生你正在寻找的效果。我们将原始数组作为引用传入,并将传递给它的任何数据添加到原始数组中。
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);
在此处观看:http://www.tehplayground.com/#DJXofIeQK
但是,我刚刚把你发布的内容作为起点。以上基本相同,不需要特殊功能:
$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);
答案 2 :(得分:1)
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);
答案 3 :(得分:0)
如何使用:
$data[] = $element;
而不是
$data += $element;
(假设你不能使用array_push)。