为了账号安全,请及时绑定邮箱和手机立即绑定

使用多个键值排序并在 php 中创建新关联数组的问题

使用多个键值排序并在 php 中创建新关联数组的问题

PHP
哔哔one 2023-07-15 18:36:12
我在 api 响应中得到了关联数组结构,如下所示{    "error": false,    "msg": "Success",    "result_user_wish_list": {        "my_whishlist": [            {                "id": 6,                "product_name": "abc",                "price": 300,                "user_id": 6,                "shop_name": 12,                "is_buy": 0,                "purchase_by": null,                "created_at": "2020-07-01T21:34:43.000000Z",                "updated_at": "2020-07-01T21:34:43.000000Z",                "shop_name": "Relience",                "shop_zipcode": "390016",                "user_name": "ABC"            },            {                "id": 2,                "product_name": "Rice",                "price": 1200,                "user_id": 1,                "shop_id": 10,                "is_buy": 0,                "purchase_by": null,                "created_at": "2020-06-16T12:02:04.000000Z",                "updated_at": "2020-07-03T16:06:42.000000Z",                "shop_name": "Dmart",                "shop_zipcode": "390017",                "user_name": "XYZ"            }        ],        "my_friends_list": [            [                {                    "id": 2,                    "product_name": "Rice",                    "price": 1200,                    "user_id": 1,                    "shop_id": 12,                    "is_buy": 0,                    "purchase_by": null,                    "created_at": "2020-06-16T12:02:04.000000Z",                    "updated_at": "2020-07-03T16:06:42.000000Z",                    "shop_name": "Relience",                    "shop_zipcode": "390016",                    "user_name": "MNJ"                }            ]        ]    }}我想从这个数组中创建另一个数组,就像我们有相同的数组一样,shop_name然后shop_zipcode从这个数组中创建另一个数组,就像但这样我只能按shop_name对数组进行排序,并且我希望我可以按shop_name和shop_zipcode对数组进行排序
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

由于这是一个 json 响应,因此您首先需要对其进行解码json_decode,然后将其视为数组。


$decode = json_decode($data,true); //$data is your json response


$result = [];

for ($i=0; $i < sizeof($decode['result_user_wish_list']['my_whishlist']) ; $i++) { 

 for ($j=0; $j < sizeof($decode['result_user_wish_list']['my_friends_list'][0]) ; $j++) { 

  if ($decode['result_user_wish_list']['my_whishlist'][$i]['shop_name'] == $decode['result_user_wish_list']['my_friends_list'][0][$j]['shop_name'] && 

   $decode['result_user_wish_list']['my_whishlist'][$i]['shop_zipcode'] == $decode['result_user_wish_list']['my_friends_list'][0][$j]['shop_zipcode']) {

   $result[$decode['result_user_wish_list']['my_whishlist'][$i]['shop_name']][] = $decode['result_user_wish_list']['my_whishlist'][$i];

   $result[$decode['result_user_wish_list']['my_whishlist'][$i]['shop_name']][] = $decode['result_user_wish_list']['my_friends_list'][0][$j];

  }

  else{

   $result[$decode['result_user_wish_list']['my_whishlist'][$i]['shop_name']][] = $decode['result_user_wish_list']['my_whishlist'][$i];

  }

 } 

}

输出


Array

(

    [Relience] => Array

        (

            [0] => Array

                (

                    [id] => 6

                    [product_name] => abc

                    [price] => 300

                    [user_id] => 6

                    [shop_name] => Relience

                    [is_buy] => 0

                    [purchase_by] => 

                    [created_at] => 2020-07-01T21:34:43.000000Z

                    [updated_at] => 2020-07-01T21:34:43.000000Z

                    [shop_zipcode] => 390016

                    [user_name] => ABC

                )


            [1] => Array

                (

                    [id] => 2

                    [product_name] => Rice

                    [price] => 1200

                    [user_id] => 1

                    [shop_id] => 12

                    [is_buy] => 0

                    [purchase_by] => 

                    [created_at] => 2020-06-16T12:02:04.000000Z

                    [updated_at] => 2020-07-03T16:06:42.000000Z

                    [shop_name] => Relience

                    [shop_zipcode] => 390016

                    [user_name] => MNJ

                )


        )


    [Dmart] => Array

        (

            [0] => Array

                (

                    [id] => 2

                    [product_name] => Rice

                    [price] => 1200

                    [user_id] => 1

                    [shop_id] => 10

                    [is_buy] => 0

                    [purchase_by] => 

                    [created_at] => 2020-06-16T12:02:04.000000Z

                    [updated_at] => 2020-07-03T16:06:42.000000Z

                    [shop_name] => Dmart

                    [shop_zipcode] => 390017

                    [user_name] => XYZ

                )


        )


)



查看完整回答
反对 回复 2023-07-15
  • 1 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信