اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

تلك المشكلة تحدث عند التﻻعب بالمصفوفة وإنتاج مصفوفة تحتاج إلى إعادة الفهرسة (re-indexing) مما يجعل الjson_encode ﻻ يعتبر أن تلك الأرقم هي فهرس للمصفوفة بل يعتبرها مفاتيح نظراً لأنها مفهرسة بشكل غير سليم, الحل أن تقوم بإعادة الفهرسة ويمكنك القيام بذلك ببساطة عبر إستخدام الدالة array_values والتي تأخذ مُعامل واحد عبارة عن المصفوفة المُراد إعادة فهرستها وتُنتج مصفوفة بدون مفاتيح بل بفهرس سليم كما في الشكل التالي

$arr = array_values($arr);
var_dump(json_encode($arr))

 

  • 0
نشر

إن كنت تريد استخلاص حقول محددة من المصفوفة يمكن المرور على المصفوفة باستعمال الدالة 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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...