簡體   English   中英

array_map 2d數組到1d關聯數組

[英]array_map 2d array to 1d associative array

我有一個2d數組(從PDO MySQL DB返回)的形式

{
  [0] => {
    "ID" => 1,
    "Name" => "Name1"
  },
  [1] => {
    "ID" => 2,
    "Name" => "Name2"
  },
 [2] => {
    "ID" => 3,
    "Name" => "Name3"
  }
}

有沒有一個優雅/有效的解決方案來轉換它

{
  [1] => "Name1",
  [2] => "Name2",
  [3] => "Name3"
}

我知道我可以循環並以這種方式創建數組,但我覺得這可能沒有像花哨的array_map那樣有效。

基本上我想要像......

array_map(
  function ($value) { 
    return $value['ID']=>$value['Name']; 
  }, $ResultArray);

如果您使用的是PHP5.5,那么您可以使用array_column函數 - 文檔

$names = array_column($records, 'Name', 'ID');

否則, array_map解決方案可能就像你能得到的一樣好:

$names = array_combine(array_map(function($value) {
     return $value['ID'];
}, $records), array_map(function($value) {
     return $value['Name'];
}, $records));

這是array_combine文檔

暫無
暫無

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

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