【问题标题】:Merging arrays of different lengths合并不同长度的数组
【发布时间】:2013-09-03 19:21:31
【问题描述】:

给定以下格式的 2 个数组:

$array1 = array("1", "2", "3", "4", "5");

$array2 = array(
  0 => array("start" => "09:00", "end" => "17:00"),
  1 => array("start" => "18:00", "end" => "20:00")
);

我需要合并,结果是:

$result = array(
  array(
    "start_day" => "1",
    "start_time" => "09:00",
    "end_day" => "1",
    "end_time" => "17:00"
  ),
  array(
    "start_day" => "1",
    "start_time" => "18:00",
    "end_day" => "1",
    "end_time" => "20:00"
 )
 // and so on for each item in $array1
);

两个数组的长度可以不同,但​​ $array2 中的每个项目都必须应用于 $array1 中的一个项目。只是把它扔出去看看是否有人对这种合并有任何经验。我当前的解决方案只给了我一个长度等于 $array2 长度的结果数组。现在正在处理这个问题,但任何见解都将不胜感激!

【问题讨论】:

  • 所以如果我理解正确,当数组 1 的大小为 n 和数组 2 的大小为 m 时,结果数组的大小为 n x m?
  • 是的,没错。将尝试发布示例尝试,首先进行另一次运行

标签: php arrays array-merge


【解决方案1】:

像这样:

$result = [];
foreach($array1 as $elem1) {
  foreach($array2 as $elem2) {
    $result[] = array(
      "start_day" => $elem1,
      "start_time" => $elem2['start'],
      "end_day" => $elem1,
      "end_time" => $elem2['end']
    );
  }
}

【讨论】:

  • 我试图使用某种奇怪的 array_combine。完全忽略了嵌套的 foreach()。工作了一个款待!干杯。
  • 很高兴能帮上忙 ;)
猜你喜欢
  • 1970-01-01
  • 2020-05-24
  • 2019-02-05
  • 2021-12-27
  • 2012-12-15
  • 2021-05-27
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
相关资源
最近更新 更多