Tamim Fahed نشر 26 يناير 2021 أرسل تقرير نشر 26 يناير 2021 السلام عليكم انا استخدم لارافل ولدي هذه القيم استعيدها من قاعدة البيانات [{"ref":"01","hold":"1","temp":["OK"]},{"ref":"01","hold":"2","temp":["Hot"],{"ref":"02","hold":"33","temp":["Hot"]} كيف يمكن ان احولها الى هذى الشكل "01" : ["OK","HOT"] يعني أدمج في حال كان اكثر من عنصر له نفس قيمة ref اقتباس
1 Wael Aljamal نشر 26 يناير 2021 أرسل تقرير نشر 26 يناير 2021 مرحبا تميم، قم بتعريف مصفوفة تحوي القيمة المعادة، عرف مصفوفة لتعيد الناتج، قم بالمرور على المصفوفة الأولى استخرج البيانات وقم بإضافتهم للإجابة، ثم يمكنك إعادة اليمة التي تريدها. <?php $json_string = '[ {"ref":"01","hold":"1","temp":["OK"]}, {"ref":"01","hold":"2","temp":["Hot"]}, {"ref":"02","hold":"3","temp":["Hot"]} ]'; //echo $json_string; $arrays = json_decode($json_string); //echo var_dump($arrays); $result = []; // echo var_dump($result); foreach ($arrays as $obj) { if (empty($result[$obj -> ref])) { $result[$obj -> ref] = array(); } foreach($obj -> temp as $element){ //echo var_dump($element); //foreach($element as $e){ //echo /*var_dump*/($element); array_push($result[$obj -> ref], $element); //} //array_push($result[$obj -> ref],$element); } } //echo var_dump($result); //echo $result["01"]; foreach ($result["01"] as $x) { //echo var_dump($x); echo "$x\n"; } ?> بالتوفيق 1 اقتباس
0 أسامة كمال النبريص نشر 26 يناير 2021 أرسل تقرير نشر 26 يناير 2021 أهلاً بك تميم, يمكن ذلك إذا قمنا بتحويل البيانات إلى collection ومن ثم إستخدام الدالة groupBy حيث نحدد باستخدام هذه الدالة على أي أساس سيتم عمل تجميع للبيانات المعطاة من خلال ال key الخاص بال array او ال collection ويكون على الشكل التالي: $data = [ ["ref" => "01", "hold" => "1", "temp" => ["OK"]], ["ref" => "01", "hold" => "2", "temp" => ["Hot"]], ["ref" => "02", "hold" => "33", "temp" => ["Hot"]] ]; $group_by_data = collect($data)->groupBy('ref'); حيث أفترضت هنا انه تم تحويل البيانات لشكل array, والدالة collect تقوم بتحويل البيانات المعطاه والتي هي array إلى collection وستكون النتائج على شكل collection أيضاً. اقتباس
0 Tamim Fahed نشر 26 يناير 2021 الكاتب أرسل تقرير نشر 26 يناير 2021 كل الشكر أخي الكريم @Wael Aljamalلقد حصلت تماماً عالمطلوب اشكرك على المساعدة 1 اقتباس
السؤال
Tamim Fahed
السلام عليكم
انا استخدم لارافل ولدي هذه القيم استعيدها من قاعدة البيانات
[{"ref":"01","hold":"1","temp":["OK"]},{"ref":"01","hold":"2","temp":["Hot"],{"ref":"02","hold":"33","temp":["Hot"]}
كيف يمكن ان احولها الى هذى الشكل
"01" : ["OK","HOT"]
يعني أدمج في حال كان اكثر من عنصر له نفس قيمة ref
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.