• 0

جلب أول رقم بعد الفاصلة باستخدام PHP

لدي رقم يتكون من عدة خانات كل خانة بها ٤ ارقام اريد جلب اول رقم من كل خانة 

$number = "21 1 10 0,22 0 0 0,23 0 0 0,24 0 0 0,25 0 0 0,26 0 0 0,27 0 0 0,28 0 0 0";

اريد النتيجة تكون 

21,22,23,24,25,26,27,28

طبعا استخدم لغة php

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يمكنك أن تستعمل دالة explode التي تستعمل لتقسيم نص معين، فعلى سبيل المثال يمكن أن تقوم بتقسيم النص الذي لديك بإستخدام الفاصلة، كالتالي:

<?php

$number = "21 1 10 0,22 0 0 0,23 0 0 0,24 0 0 0,25 0 0 0,26 0 0 0,27 0 0 0,28 0 0 0";
$num_arr = explode(',', $number);
print_r($num_arr);	# Output: Array ( [0] => 21 1 10 0 [1] => 22 0 0 0 [2] => 23 0 0 0 [3] => 24 0 0 0 [4] => 25 0 0 0 [5] => 26 0 0 0 [6] => 27 0 0 0 [7] => 28 0 0 0 )

بعد ذلك يمكنك المرور على كل عنصر في هذه المصوفة وتقسيمه مرة أخرى بإستخدام دالة explode من خلال المسافات كالتالي:

$counter = count($num_arr);
for ($i = 0; $i < $counter; $i++) {
    echo explode(" ", $num_arr[$i])[0];
    echo ",";
}

# Output: 21,22,23,24,25,26,27,28,

بالطبع يمكنك حذف الفاصلة الأخيرة (الموجودة بعد رقم 28) من خلال إضافة شرط للتحقق مما إذا كان العنصر هو الأخير أم لا كالتالي:

$counter = count($num_arr);
for ($i = 0; $i < $counter; $i++) {
    echo explode(" ", $num_arr[$i])[0];
    if ($i != $counter -1 ) {
      echo ",";
    }
}
                           
# Output: 21,22,23,24,25,26,27,28

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يمكننا تعريف متغير و ليكن باسم 

$number = "21 1 10 0,22 0 0 0,23 0 0 0,24 0 0 0,25 0 0 0,26 0 0 0,27 0 0 0,28 0 0 0";

ثم ننشأ متغير أخر لنقوم بتقسيم الأرقام عن طريق الفاصلة بهذه الطريقة 

$_arr                    = explode(',', $number);

ثم ننشأ حلقة تكرار من نوع foreach بهذا الشكل 

$_c                      = 0;
foreach ($_arr as $str) {
	++$_c;
	list($first, $second, $third, $fourth) = explode(' ', $str);
		echo $first, ',';
}

فلاحظ أننا قمنا بأنشاء متغير لنضيف له مقدار 1 في كل مرة تتكرر فيها الحلقة , ايضا قمنا بإنشاء 4 متغيرات حسب الأربع خانات لديك بحيث المتغير 

$first لأول خانة, 
$second لثاني خانة,
$third لثالث خانة, 
$fourth لرابع خانة

ومن ثم قمنا بطباعة الأرقام الموجودة في أول خانة بهذا الشكل 

echo $first, ',';

و إذا أردنا طباعة أرقام ثاني خانة 

echo $second, ',';

 

انشر على الشّبكات الاجتماعية


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

نقوم أولا باستخراج كل اربعة ارقام من النص الى مجموعة، وذلك بتقسيم النص عند كل فاصلة باستخدام التابع explode :

$number_groups = explode(',', $number);
/**
$number_groups = [
  "21 1 10 0",
  "22 0 0 0",
  "23 0 0 0",
  "24 0 0 0",
  "25 0 0 0",
  "26 0 0 0",
  "27 0 0 0",
  "28 0 0 0"
]
*/

 أصبح لدينا مصفوفة تحوي مجموعات الارقام، نمر على كل مجموعة باستخدام التابع array_map، ونستخرج منها أول رقم وذلك بتقسيم نص المجموعة الى اربعة ارقام عن طريق التقسيم عند كل فراغ باستخدام نفس التابع السابق explode :

$first_numbers = array_map(function ($group) { // تابع ينفذ لكل عنصر في المصفوفة
// $group = "21 1 10 0"...

$numbers = explode(' ', $group); // نستخرج الارقام الاربعة
// $numbers = ["21", "1", "10", "0"]

$first_number = $numbers[0]; // نختار أول رقم
// $first_number = ["21"]

return $first_number; // نعيد القيمة التي نريد التبديل بها
}, $number_groups);
// $first_numbers = ["21", "22", "23", "24", "25", "26", "27", 28"]

أصبح لدينا مصفوفة الارقام التي نريدها اذا اردتها على شكل نص "21,22,23,24,25,26,27,28" تقوم بجمع عناصر المصفوفة بنص وبفاصلة المحرف "," باستخدام التابع implode كما يلي

$result = implode(',', $first_numbers);
// $result "21,22,23,24,25,26,27,28"

يمكنك جمع الخطوات ووضعها في تابع واحد لسهولة الاستخدام

function extractFirstNumbers($number)
{
  $number_groups = explode(',', $number);

  $first_numbers = array_map(function ($group) {

    $numbers = explode(' ', $group);

    $first_number = $numbers[0];

    return $first_number;
  }, $number_groups);

  $result = implode(',', $first_numbers);

  return $result;
}

واستخدامه كما يلي

$number = "21 1 10 0,22 0 0 0,23 0 0 0,24 0 0 0,25 0 0 0,26 0 0 0,27 0 0 0,28 0 0 0";

echo extractFirstNumbers($number);

// يطبع التالي
// 21,22,23,24,25,26,27,28

 

 

 

تمّ تعديل بواسطة Hassan Hedr

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن