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

كيفية تحويل مصفوفة إلى ملف json بدون إضافة رقم الفهرس في php

خالد مرتضى

السؤال

كيفية تحويل مصفوفة الى ملف json بدون اضافة رقم الفهرس في php مثلا المصفوفة

[
0=>{
id:1,
name:"khaled"
},
{
id:2,
name:"mortada"
}

]

عندما اقوم بإستخدام json_encode تتحول الى ملف جيسون

{
[
"0":{
id:1,
name:"khaled"
},
"1":{
id:2,
name:"mortada"
}
]
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...