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

كيف أدمج عناصر في لارافل

Tamim Fahed

السؤال

السلام عليكم

انا استخدم لارافل ولدي هذه القيم استعيدها من قاعدة البيانات

[{"ref":"01","hold":"1","temp":["OK"]},{"ref":"01","hold":"2","temp":["Hot"],{"ref":"02","hold":"33","temp":["Hot"]}

كيف يمكن ان احولها الى هذى الشكل

"01" : ["OK","HOT"]

يعني أدمج في حال كان اكثر من عنصر له نفس قيمة ref

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

Recommended Posts

  • 1

مرحبا تميم،

قم بتعريف مصفوفة تحوي القيمة المعادة،

عرف مصفوفة لتعيد الناتج،

قم بالمرور على المصفوفة الأولى استخرج البيانات وقم بإضافتهم للإجابة،

ثم يمكنك إعادة اليمة التي تريدها.

<?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";
}

?>

بالتوفيق

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

  • 0

أهلاً بك تميم,

يمكن ذلك إذا قمنا بتحويل البيانات إلى 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 أيضاً.

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...