البرمجة

تحويل الأرقام إلى كلمات في Yii2

لتحويل الأرقام إلى كلمات في Yii2، يمكنك استخدام الدالة التالية:

php
function convertNumberToWords($number) { $words = ["", "واحد", "اثنان", "ثلاثة", "أربعة", "خمسة", "ستة", "سبعة", "ثمانية", "تسعة", "عشرة", "أحد عشر", "اثنا عشر", "ثلاثة عشر", "أربعة عشر", "خمسة عشر", "ستة عشر", "سبعة عشر", "ثمانية عشر", "تسعة عشر"]; $units = ["", "عشرة", "مئة", "ألف", "مليون", "مليار", "تريليون"]; $num = str_replace(",", "", $number); $num = number_format($num, 2, ".", ","); $num_arr = explode(".", $num); $num_word = ""; if (isset($num_arr[0]) && !empty($num_arr[0])) { $num_arr[0] = str_split(strrev($num_arr[0]), 3); foreach ($num_arr[0] as $key => $value) { $value = strrev($value); $value_word = ""; if ($value[0] != "0") { $value_word .= $words[$value[0]]; } if (isset($value[1]) && $value[1] != "0") { $value_word .= " " . $words[$value[1] + 10]; } if (isset($value[2]) && $value[2] != "0") { $value_word .= " " . $words[$value[2]] . " مئة"; } if ($key > 0) { $value_word .= " " . $units[$key + 2]; } $num_word = $value_word . $num_word; } } if (isset($num_arr[1]) && !empty($num_arr[1])) { $num_arr[1] = str_split($num_arr[1], 1); $num_word .= " و " . $words[$num_arr[1][0]] . " جنيه"; if ($num_arr[1][1] != "0") { $num_word .= " و " . $words[$num_arr[1][1]] . " قرش"; } } else { $num_word .= " جنيه فقط"; } return $num_word; } // Example usage $total = 5600; $convertedTotal = convertNumberToWords($total); echo "المبلغ بالأرقام: $total
"
; echo "المبلغ بالكلمات: $convertedTotal";

هذه الدالة convertNumberToWords تأخذ العدد وتقوم بتحويله إلى كلمات. يمكنك استدعاء هذه الدالة مع المبلغ الذي تريد تحويله إلى كلمات وستعيد لك الكلمات المقابلة للمبلغ.

المزيد من المعلومات

لتحويل الأرقام إلى كلمات في Yii2، يمكنك استخدام الكلاس yii\helpers\Inflector الذي يوفر وظيفة ordinalize لهذا الغرض. تقوم هذه الوظيفة بتحويل الأرقام إلى ترتيبات، مثل 1st، 2nd، 3rd، وهكذا.

على سبيل المثال، يمكنك استخدامها كما يلي:

php
use yii\helpers\Inflector; $total = 5600; $convertedTotal = Inflector::ordinalize($total); echo "المبلغ بالأرقام: $total
"
; echo "المبلغ بالكلمات: $convertedTotal";

وهذا سيعيد “المبلغ بالكلمات” بصيغة ترتيبية، على سبيل المثال “five thousand six hundredth”، ويمكنك تعديل الناتج بما يناسب اللغة العربية بحيث يكون “five thousand six hundredth” تصبح “خمسة آلاف وستمائة”.

زر الذهاب إلى الأعلى