3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json_str='{ "code": 200, "message": "操作成功", "data": [ { "id": 1, "goods_id": 1, "property_name_id": 1, "property_value_id": 1, "property_name": { "title": "份量", "is_sale": true }, "property_value": { "id": 1, "value": "小份", "image": "" } }, { "id": 2, "goods_id": 1, "property_name_id": 1, "property_value_id": 2, "property_name": { "title": "份量", "is_sale": true }, "property_value": { "id": 2, "value": "中份", "image": "" } }, { "id": 3, "goods_id": 1, "property_name_id": 2, "property_value_id": 4, "property_name": { "title": "温度", "is_sale": true }, "property_value": { "id": 4, "value": "常温", "image": "" } }, { "id": 4, "goods_id": 1, "property_name_id": 2, "property_value_id": 5, "property_name": { "title": "温度", "is_sale": true }, "property_value": { "id": 5, "value": "加冰", "image": "" } } ] }'; $obj = json_decode($json_str); $data = []; foreach($obj->data as $v){ $nid=$v->property_name_id; if(!array_key_exists($nid,$data)){ $o = new stdclass; $o->property_id = $v->property_name_id; $o->property_name = $v->property_name->title; $o->is_sale= $v->property_name->is_sale ; $data[$nid]=$o; } $data[$nid]->items[]=$v->property_value; } $obj->data = array_values($data); print_r($obj); //echo json_encode($obj);
Output for 7.1.26 - 7.1.33, 7.2.17 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
stdClass Object ( [code] => 200 [message] => 操作成功 [data] => Array ( [0] => stdClass Object ( [property_id] => 1 [property_name] => 份量 [is_sale] => 1 [items] => Array ( [0] => stdClass Object ( [id] => 1 [value] => 小份 [image] => ) [1] => stdClass Object ( [id] => 2 [value] => 中份 [image] => ) ) ) [1] => stdClass Object ( [property_id] => 2 [property_name] => 温度 [is_sale] => 1 [items] => Array ( [0] => stdClass Object ( [id] => 4 [value] => 常温 [image] => ) [1] => stdClass Object ( [id] => 5 [value] => 加冰 [image] => ) ) ) ) )
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 stdClass Object ( [code] => 200 [message] => 操作成功 [data] => Array ( [0] => stdClass Object ( [property_id] => 1 [property_name] => 份量 [is_sale] => 1 [items] => Array ( [0] => stdClass Object ( [id] => 1 [value] => 小份 [image] => ) [1] => stdClass Object ( [id] => 2 [value] => 中份 [image] => ) ) ) [1] => stdClass Object ( [property_id] => 2 [property_name] => 温度 [is_sale] => 1 [items] => Array ( [0] => stdClass Object ( [id] => 4 [value] => 常温 [image] => ) [1] => stdClass Object ( [id] => 5 [value] => 加冰 [image] => ) ) ) ) )

preferences:
153.69 ms | 409 KiB | 164 Q