繁体   English   中英

通过键合并两个数组,但在PHP中保留第一个数组的键,array_combine失败

[英]Merge two arrays by key but mantain the key of the first in PHP, array_combine fails

我试图组合两个数组,但要保留第一个的键。

我有此数据:

$days = array(
    1 => array("name" => "Monday"),
    2 => array("name" => "Tuesday"),
    3 => ...
    30 => array("name" => "Sunday"),
);

还有一个点击:

$clics = array(
    2 => array("clicks" => 4),
    10 => array("clicks" => 2),
);

我想要的数组是:

$final = array(
    1 => array("name" => "Monday"),
    2 => array("name" => "Tuesday", "clicks" => 4),
    3 => ... 
    4 =>
    5 => 
    ...
    10 => array("name" => "Tuesday", "clicks" => 2),
    ..
    30 => array("name" => "Sunday"),
);

在第二个数组中,如果没有单击,则索引不存在。 我试过array_combine,但需要具有相同的键,而array_merge失败。

我有什么选择?

先感谢您

看一下PHP.net上的array_merge_recursive函数。 另外,查看那里的注释,以查找那些功能之一是否正在提供所需的数组(即,IE 注释#104145注释#102379

另外,请注意,使用foreach可以确保最终拥有所需的数组。 有什么特定原因导致您不想要或无法使用foreach?

我看不到有任何方法可以无循环地执行此操作,但是使用循环很容易:

function merge_your_arrays ($days, $clicks) {
  foreach ($days as $k => $v) {
    if (isset($clicks[$k])) {
      $days[$k] = array_merge($days[$k],$clicks[$k]);
    }
  }
  return $days;
}

$final = merge_your_arrays($days, $clicks);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM