Khaled Mohammed7 نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 لدي رقم يتكون من عدة خانات كل خانة بها ٤ ارقام اريد جلب اول رقم من كل خانة $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 سامح أشرف نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 يمكنك أن تستعمل دالة 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 بلال زيادة نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 يمكننا تعريف متغير و ليكن باسم $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 Hassan Hedr نشر 16 أغسطس 2021 أرسل تقرير نشر 16 أغسطس 2021 (معدل) نقوم أولا باستخراج كل اربعة ارقام من النص الى مجموعة، وذلك بتقسيم النص عند كل فاصلة باستخدام التابع 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 تم التعديل في 16 أغسطس 2021 بواسطة Hassan Hedr اقتباس
السؤال
Khaled Mohammed7
لدي رقم يتكون من عدة خانات كل خانة بها ٤ ارقام اريد جلب اول رقم من كل خانة
$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
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.