簡體   English   中英

將鍵從一個數組匹配到另一個數組,並使用其值創建一個新數組?

[英]Matching keys from one array to another and creating a new array with their values?

嗨,我有兩個數組,第一個看起來像這樣:

array(  
    00000 => array(  
                 0 => 123,
                 1 => 456,
                 2 => 789,  
               )
    11111 => array(  
                 0 => 987,  
                 1 => 654,  
                 2 => 321,  
               )

我的第二個數組如下所示:

array(  
    00000 => 'apples',  
    11111 => 'bananas',
)

要做的是將第一個數組中的鍵與第二個數組中的鍵匹配,如果匹配,則取第一個數組的鍵對值數組的值,並使其成為全新數組的鍵和第二個數組的值數組使它們成為全新數組的值。 像這樣:

array(  
    123 => 'apples',  
    456 => 'apples',  
    789 => 'apples',  
    987 => 'bananas',  
    654 => 'bananas',  
    321 => 'bananas',  
)

任何幫助謝謝!

所以我假設你有2個數組(並且您將第二個數組固定為具有唯一鍵)

$array3 = array (); //for the result
foreach ($array1 as $seg)
{

   foreach ($seg as $key)
   {
      $array3[$key] = $array2[$seg];
   }     
}

嘗試這個

$array = array(
    "00000" => array(
                 0 => 123,
                 1 => 456,
                 2 => 789,
    ),
    "11111" => array(
                 0 => 987,  
                 1 => 654,  
                 2 => 321,  
    )
);

$arr = array(  
    "00000" => 'apples',  
    "11111" => 'bananas',
);

$array3 = array();
foreach ($array as $keyas => $segs)
{
    foreach ($segs as $key)
   {
       $array3[$key] = $arr[$keyas];
   }     
}
 echo "<pre>";
 print_r($array3);
 unset($array3);

輸出:

Array
(
    [123] => apples
    [456] => apples
    [789] => apples
    [987] => bananas
    [654] => bananas
    [321] => bananas
)

嗨,實際上我在php.net上做了一些研究,找到了解決方案:

$array3 = array_keys($array1);  
$array4 = array_keys($array2);
$array5 = array_intersect($array3, $array4)
$array6 = array();  

foreach($array5 as $id) {  
    foreach($array1[$id] as $userId) {  
        $array6[$userId] = $array2[$id]  
    }  
}

可能制作了比所需數量更多的數組,但這在將值分配給新數組之前起作用並匹配了兩個數組的鍵。

感謝所有回答和幫助!

暫無
暫無

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

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