簡體   English   中英

在PHP中合並多維數組

[英]Merge multidimensional arrays in PHP

我想基於前一個數組中的相同鍵在新數組中創建一個值列表。 基本上,我想轉這個數組:

$old_array = Array (
  [segment1] => Array (
     [subsegment] => Array (
        [number1] => 1413
        [number2] => 306
     )
   )
  [segment2] => Array (
     [subsegment] => Array (
        [number1] => 717
        [number2] => 291
     )
   )
 )

...進入這個數組:

$new_array = Array (
  [segment] => Array (
     [subsegment] => Array (
        [number1] => Array (
           [0] => 1413
           [1] => 717
        )
        [number2] => Array (
           [0] => 306
           [1] => 291
        )
     )
   )
 )

我嘗試了以下方法:

$new_array = array ();
foreach ($old_array["segment"]["subsegment"] as $value) {
   $new_array["segment"]["subsegment"][] = $value;
}

不幸的是,這不起作用。 我需要做什么? 謝謝。

我知道你想要所有number1都在同一個鍵中,然后是所有數字2,依此類推。 嘗試這個:

$numberCount = count($old_array['segment1']['subsegment']);
foreach ($old_array as $segment)
 {for ($i=1;$i<=$numberCount;$i++)
   {$new_array['segment']['subsegment']['number' . $i][] = $segment['subsegment']['number' . $i];}}

這是假設所有子段具有相同數量的[numberx]鍵

這非常特定於您的示例$ old_array:

$index = 1;
$new_array = array();
do {
    if (!isset($old_array["segment" . $index]["subsegment"]))
        break;
    foreach ($old_array["segment" . $index]["subsegment"] as $key => $value) {
        $new_array["segment"]["subsegment"][$key][] = $value;
    }
    $index++;
} while (true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM