3

次の形式の 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 の長さに等しい長さの結果配列しか得られません。現在これに取り組んでいますが、洞察をいただければ幸いです。

4

1 に答える 1

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']
    );
  }
}
于 2013-09-03T19:38:57.120 に答える