將數據行轉換為 1 個對象 (Convert data rows to 1 object)


問題描述

將數據行轉換為 1 個對象 (Convert data rows to 1 object)

閱讀 Laravel 6 行,如

 {"filter_options":[
   {"id":5,"key":"category_id","value":"2","created_at":"2020‑02‑10 18:23:48"},
   {"id":4,"key":"only_with_images","value":"1","created_at":"2020‑02‑10 18:23:48"}
  ]
 } 

我需要轉換 1 個對像中的數據,如

{ 
   category_id : 2,
   only_with_images :"1"
}

我知道如何用一個普通的圓圈來實現,但是有一些收集映射方法?

謝謝!


參考解法

方法 1:

I am not sure if your data is a collection or not, but let's assume this is the data

$array = ['filter_options' => [
    ['id' => 5, 'key' => 'category_id', 'value' => 2, 'created_at' => '2020‑02‑10 18:23:48'],
    ['id' => 4, 'key' => 'only_with_images', 'value' => 1, 'created_at' => '2020‑02‑10 18:23:48'],
   ]];

you only need to do this

    //after php 7.4
    return collect($array['filter_options'])‑>flatMap(fn ($item) => [$item['key'] => $item['value']]);
    //before php 7.4
    return collect($array['filter_options'])‑>flatMap(function ($item) {
        return [$item['key'] => $item['value']];
    });

Note: obviously this is array syntax to access the properties($item['key']), if your data soruce is from laravel eloquent, you may not need collect() helper method and you need to use the object way to access the properties like $item‑>key.

(by Petro GromovoAndy Song)

參考文件

  1. Convert data rows to 1 object (CC BY‑SA 2.5/3.0/4.0)

#collections #Laravel






相關問題

C ++中集合/容器的接口/超類 (Interface/Superclass for Collections/Containers in c++)

如何將對象列表轉換為兩級字典? (How to convert a list of objects to two level dictionary?)

如何在java中限制哈希集的默認排序 (how to restrict default ordering of Hash Set in java)

將兩個單獨的 Set 轉換為二維數組 (Convert two separate Sets to a 2D array)

事件調度線程從列表異常 SWING 中移除 (Event dispatching thread remove from List exception SWING)

將集合項複製到 .NET 中的另一個集合 (Copy collection items to another collection in .NET)

java - 如何在java中使用某些特定索引將值存儲到arraylist中 (how to store value into arraylist with some specific index in java)

將對象添加到具有主幹的第一個位置的集合中? (Adding object to a Collection in the first position with backbone?)

在VB中過濾一個wpf collectionviewsource? (Filter a wpf collectionviewsource in VB?)

將流式數據讀入排序列表 (Reading streamed data into a sorted list)

有沒有一種自動處理數組和強類型集合之間轉換的好方法? (Is there a good way to handle conversions between arrays and strongly typed collections automatically?)

將數據行轉換為 1 個對象 (Convert data rows to 1 object)







留言討論