使用引用将元素添加到数组中


Add element to array with Reference

我正在尝试构建一个函数,以便在我的项目中更轻松地操作数组。

我想通过传递引用来做到这一点。希望以更高效和节省资源的方式。

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')

我对参考资料没有经验,感谢您的任何提示。

我相信

这将产生您正在寻找的效果。 我们将原始数组作为引用传入,它将您传递给它的任何数据添加到原始数组中。

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);

在这里看到它: http://www.tehplayground.com/#PAbhOHaPT

尝试

array_push($data, $element);

array_push函数将新数据添加到数组的末尾。

在此处查看详细信息:http://php.net/manual/de/function.array-push.php

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);

使用:

$data[] = $element;

而不是

$data += $element;

(假设您不能使用 array_push)。