2016-07-23 101 views
2

我可以這樣寫出來。創建子陣列時通過分配鍵創建陣列陣列

$key = "sid"; 
$values = array(1,2,3); 
$desired_array = array(); 

foreach($values as $value){ 
    $desired_array[] = array($key => $value); 
} 

print_r($desired_array); 

輸出結果如下所示。

Array 
(
    [0] => Array 
     (
      [sid] => 1 
     ) 

    [1] => Array 
     (
      [sid] => 2 
     ) 

    [2] => Array 
     (
      [sid] => 3 
     )  
) 

我希望有一個奇特的PHP的陣列功能,我不知道,可以創建一個對我這麼讓我的代碼更簡潔。

下面是已完成的解決方案,可能不會更短,但我總是很開心,當我使用array_map。

$key = "sid"; 
$values = array(1,2,3); 
$desired_array = array_map(function($value) use($key){ 
    return array($key=>$value); 
},$values); 

回答

2

使用array_map功能的替代解決方案:

$desired_array = array_map(function($v) use($key){ return [$key => $v]; }, $values); 
+0

使用($ key)正是我需要的,使array_map以我需要的方式工作。謝謝! – jbrahy

+0

@ jbrahy,不客氣 – RomanPerekhrest

2

你可能會尋找array_map

它的工作是這樣的:

$array = [1, 2, 3]; 
$desired = array_map(function ($item) {return ['sid' => $item];}, $array); 

我相信這link應該示範工作爲好。

+0

謝謝,但是當我最初嘗試使用array_map時,我錯過了use()。這是RomanPerekhrest的回答。 – jbrahy

+0

是的,如果你想要一個可變的鍵,他是更好的答案。 – ToothlessRebel