我將詳細介紹。
假設我有一個這樣的陣列:
陣列的 JSON 版本:
[
{
"SKU": "COL-10-49000 ",
"SHOP": "GWUK ",
"FLDDEF": "Body_HTML ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWUK ",
"FLDDEF": "Metafield_3 ",
"PARB": "icon_image_2 ",
"STAT1": "U ",
"FREIA1": "19000726159421 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49310 ",
"SHOP": "GWIN ",
"FLDDEF": "SEO_1 ",
"PARB": "title_tag ",
"STAT1": "U ",
"FREIA1": "19034707656748 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWIN ",
"FLDDEF": "Metafield_14 ",
"PARB": "subtitle ",
"STAT1": " ",
"FREIA1": "19472915890220 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUEN ",
"FLDDEF": "Metafield_9 ",
"PARB": "icon_label_1 ",
"STAT1": " ",
"FREIA1": "20117934276662 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Metafield_14 ",
"PARB": "icon_label_3 ",
"STAT1": "U ",
"FREIA1": "13660255911996 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWIN ",
"FLDDEF": "Body_HTML ",
"PARB": " ",
"STAT1": " ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49310 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Metafield_3 ",
"PARB": "image ",
"STAT1": "U ",
"FREIA1": "13675072946236 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49309 ",
"SHOP": "GWUK ",
"FLDDEF": "Collection_Title ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49309 ",
"SHOP": "GWEUFR ",
"FLDDEF": "Metafield_2 ",
"PARB": "icon ",
"STAT1": "U ",
"FREIA1": "18980910989369 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49310 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Collection_Title ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUEN ",
"FLDDEF": "Metafield_7 ",
"PARB": "subtitle ",
"STAT1": " ",
"FREIA1": "20117934211126 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49310 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Handle ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": "166926024764 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUEN ",
"FLDDEF": "Body_HTML ",
"PARB": " ",
"STAT1": " ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49310 ",
"SHOP": "GWEUFR ",
"FLDDEF": "Body_HTML ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49309 ",
"SHOP": "GWIN ",
"FLDDEF": "Metafield_3 ",
"PARB": "video ",
"STAT1": "U ",
"FREIA1": "19038265573420 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUEN ",
"FLDDEF": "Metafield_5 ",
"PARB": "icon_image_1 ",
"STAT1": " ",
"FREIA1": "20117934145590 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Metafield_12 ",
"PARB": "icon_image_3 ",
"STAT1": "U ",
"FREIA1": "13660255846460 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUFR ",
"FLDDEF": "Metafield_5 ",
"PARB": "heading ",
"STAT1": "U ",
"FREIA1": "18980495228985 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49309 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Metafield_1 ",
"PARB": "subtitle ",
"STAT1": "U ",
"FREIA1": "13672656044092 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUEN ",
"FLDDEF": "Handle ",
"PARB": " ",
"STAT1": " ",
"FREIA1": "57456984123 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49309 ",
"SHOP": "GWIN ",
"FLDDEF": "Metafield_2 ",
"PARB": "icon ",
"STAT1": "U ",
"FREIA1": "19038265540652 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49309 ",
"SHOP": "GWUK ",
"FLDDEF": "Image_URL ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Metafield_18 ",
"PARB": "icon ",
"STAT1": "U ",
"FREIA1": "19587379658812 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49000 ",
"SHOP": "GWEUEN ",
"FLDDEF": "Metafield_4 ",
"PARB": "video ",
"STAT1": " ",
"FREIA1": "20117934112822 ",
"FREIA2": " "
},
{
"SKU": "COL-10-49309 ",
"SHOP": "GWEUDE ",
"FLDDEF": "Body_HTML ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": " ",
"FREIA2": " "
},
{
"SKU": "COL-10-49310 ",
"SHOP": "GWUK ",
"FLDDEF": "Handle ",
"PARB": " ",
"STAT1": "U ",
"FREIA1": "261318574141 ",
"FREIA2": " "
}
]
我的目標是遍歷陣列并查看 SKU 在哪里等于自身。目標是然后將 SKU 相同的所有陣列推送到不同的多維陣列中。
因此,例如 SKU =COL-10-49000應以 1 個多維陣列結尾的所有陣列以及 SKU =COL-10-49310應以 1 個多維陣列結尾的所有陣列。
這是我目前擁有的,但似乎并沒有做到這一點
foreach($aArray as $a) {
if($a[SKU] == $a[SKU]) {
array_push($bArray, $a)
}
}
我希望然后有一個看起來像這樣的陣列:
[0] => Array(
[0] => Array ([SKU] => COL-10-49310 [SHOP] => EU3 [FLDDEF] => Handle [PARB] => [STAT1] => U [FREIA1] => 166926024764 [FREIA2] =>)
[1] => Array ([SKU] => COL-10-49310 [SHOP] => EU3 [FLDDEF] => Collection_Title [PARB] => [STAT1] => U [FREIA1] => [FREIA2] =>)
[2] => Array ([SKU] => COL-10-49310 [SHOP] => INT1 [FLDDEF] => SEO_1 [PARB] => title_tag [STAT1] => U [FREIA1] => 19034707656748 [FREIA2] => )
)
[1] => Array([0] => Array ([SKU] => COL-10-49309 [SHOP] => EU3 [FLDDEF] => Handle [PARB] => [STAT1] => U [FREIA1] => 166926024764 [FREIA2] =>)
[1] => Array ([SKU] => COL-10-49309 [SHOP] => EU3 [FLDDEF] => Collection_Title [PARB] => [STAT1] => U [FREIA1] => [FREIA2] =>)
[2] => Array ([SKU] => COL-10-49309 [SHOP] => INT1 [FLDDEF] => SEO_1 [PARB] => title_tag [STAT1] => U [FREIA1] => 19034707656748 [FREIA2] => ))
因此,每個 SKU 及其所有對應的陣列都將集中在一個多維陣列中,然后我可以在其中使用($i = 0; $i < count($aArray); $i ){}樣式回圈遍歷它。
uj5u.com熱心網友回復:
聽起來您想將資料拆分為單獨的陣列,每個陣列僅包含與單個 SKU 相關的條目。
正如您在評論中提到的,頂級陣列可以關聯索引而不是數字索引,這使得通過從專案中讀取 SKU 將專案分配給每個子陣列變得非常簡單。
例如
$output = array();
foreach ($input as $item)
{
$sku = $item["SKU"];
$output[$sku][] = $item;
}
現場演示:http : //sandbox.onlinephpfunctions.com/code/770b4fcc096449ee6c0a9fd39174f5b6bcd4106a
uj5u.com熱心網友回復:
所以根據你的問題,我可以為你提供這個解決方案:
解碼json
$data = json_decode(<your_json_string>)然后我們可以使用
array_reduce()函式來獲取結果陣列。
$result = array_reduce($data, function (array $accumulator, $item) {
$accumulator[$item->SKU][] = $item;
return $accumulator;
}, []);
因此$result陣列將包含具有每個 SKU 值鍵的多維陣列
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/389880.html
