Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert English numbers to Arabic numerals

Tags:

php

arabic

How can i convert English numbers being retrieved from the database to Arabic numeral symbols in PHP.

EDIT: Here're some examples of what Arabic numerals look like. I live in an Arab country, so please don't go around explaining to me what Arabic numerals look like. If you can help, good and well. I don't need bogus ideas.

http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Arabic_numerals-en.svg/500px-Arabic_numerals-en.svg.png

like image 519
HyderA Avatar asked Aug 02 '10 10:08

HyderA


People also ask

How do you write numbers in Arabic numerals?

Arabic numbering rules Digits from zero to nine are specific words, namely sifr (صِفْرٌ) [0], wahid (وَاحِدٌ) [1], ithnan (اِثْنَانِ) [2], thalatha (ثَلَاثَةٌ) [3], arba'a (أَرْبَعٌ) [4], khamsa (خَمْسَةٌ) [5], sitta (سِتَّةٌ) [6], sab'a (سَبْعَةٌ) [7], thamaniya (ثَمَانِيَةٌ) [8], and tis'a (تِسْعَةٌ) [9].

How do I turn on Arabic numbers in Word?

Open an Office program file, such as a Word document. On the File tab, choose Options > Language. In the Set the Office Language Preferences dialog box, in the Editing Language list, choose the Arabic dialect you want, and then choose Add.

Are English numbers Arabic?

The numbers English speakers use every day, known as Arabic numerals, were developed in the Maghreb during the 10th century. They made their way into Europe through Arab scholars in Al-Andalus (modern-day Andalusia in Spain), hence they are called Arabic numerals.


3 Answers

If you are referring to what Wikipedia calls eastern arabic / indic numerals, a simple replace operation should do.

$western_arabic = array('0','1','2','3','4','5','6','7','8','9'); $eastern_arabic = array('٠','١','٢','٣','٤','٥','٦','٧','٨','٩');  $str = str_replace($western_arabic, $eastern_arabic, $str); 
like image 180
Pekka Avatar answered Sep 30 '22 10:09

Pekka


Definitions

  • Western arabic numerals: "1234567890".
  • Eastern arabic numerals: "١٢٣٤٥٦٧٨٩٠".

The answer

I wrote a couple of functions (gist.github.com) a while back.

Demo (3v4l.org)

    echo arabic_w2e("1234567890"); // Outputs: ١٢٣٤٥٦٧٨٩٠     echo arabic_e2w("١٢٣٤٥٦٧٨٩٠"); // Outputs: 1234567890 

Code

<?php  /**  * Converts numbers in string from western to eastern Arabic numerals.  *  * @param  string $str Arbitrary text  * @return string Text with western Arabic numerals converted into eastern Arabic numerals.  */ function arabic_w2e($str) {     $arabic_eastern = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');     $arabic_western = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');     return str_replace($arabic_western, $arabic_eastern, $str); }  /**  * Converts numbers from eastern to western Arabic numerals.  *  * @param  string $str Arbitrary text  * @return string Text with eastern Arabic numerals converted into western Arabic numerals.  */ function arabic_e2w($str) {     $arabic_eastern = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');     $arabic_western = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');     return str_replace($arabic_eastern, $arabic_western, $str); } 
like image 39
Nabil Kadimi Avatar answered Sep 30 '22 09:09

Nabil Kadimi


Or you can just download and use this class from: http://www.phpclasses.org/package/6626-PHP-Convert-numbers-to-Arabic-representation.html (Tested and working). Cheers.

like image 29
Mario Awad Avatar answered Sep 30 '22 09:09

Mario Awad