خالد مرتضى نشر 10 أكتوبر 2021 أرسل تقرير نشر 10 أكتوبر 2021 كيفية تحويل مصفوفة الى ملف json بدون اضافة رقم الفهرس في php مثلا المصفوفة [ 0=>{ id:1, name:"khaled" }, { id:2, name:"mortada" } ] عندما اقوم بإستخدام json_encode تتحول الى ملف جيسون { [ "0":{ id:1, name:"khaled" }, "1":{ id:2, name:"mortada" } ] } 1 اقتباس
1 شرف الدين حفني نشر 10 أكتوبر 2021 أرسل تقرير نشر 10 أكتوبر 2021 تلك المشكلة تحدث عند التﻻعب بالمصفوفة وإنتاج مصفوفة تحتاج إلى إعادة الفهرسة (re-indexing) مما يجعل الjson_encode ﻻ يعتبر أن تلك الأرقم هي فهرس للمصفوفة بل يعتبرها مفاتيح نظراً لأنها مفهرسة بشكل غير سليم, الحل أن تقوم بإعادة الفهرسة ويمكنك القيام بذلك ببساطة عبر إستخدام الدالة array_values والتي تأخذ مُعامل واحد عبارة عن المصفوفة المُراد إعادة فهرستها وتُنتج مصفوفة بدون مفاتيح بل بفهرس سليم كما في الشكل التالي $arr = array_values($arr); var_dump(json_encode($arr)) 1 اقتباس
0 Wael Aljamal نشر 10 أكتوبر 2021 أرسل تقرير نشر 10 أكتوبر 2021 إن كنت تريد استخلاص حقول محددة من المصفوفة يمكن المرور على المصفوفة باستعمال الدالة map ثم قراءة البيانات التي تريدها وهذه ستعيد الحقول مع تحكم أكثر لعمليات الدمج والفلترة وغيرهم echo json_encode( array_map(function($x) { return $x['first_name'] . " " . $x['last_name'] ; }, $original_array)); ,وإن كنت تستعمل لارافل يمكن استخدام الصنف collections للتحويل بين المصفوفات Arrays وكائنات JSON التضمين: use Illuminate\Support\Collection; الدالة البانية: collect مثال $collection = collect([1, 2, 3]); $collection->all(); // [1, 2, 3] مثال: $collection = collect(['name' => 'Desk', 'price' => 200]); $collection->toJson(); // '{"name":"Desk", "price":200}' //--------------------- $collection = collect(['name' => 'Desk', 'price' => 200]); $collection->toArray(); /* [ ['name' => 'Desk', 'price' => 200], ] */ توثيق: laravel / collections اقتباس
السؤال
خالد مرتضى
كيفية تحويل مصفوفة الى ملف json بدون اضافة رقم الفهرس في php مثلا المصفوفة
[ 0=>{ id:1, name:"khaled" }, { id:2, name:"mortada" } ]
عندما اقوم بإستخدام json_encode تتحول الى ملف جيسون
{ [ "0":{ id:1, name:"khaled" }, "1":{ id:2, name:"mortada" } ] }
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.