Php - शब्दों में वापसी गिनती ()

मेरे पास मेरे कोड में निम्नलिखित है:

 $my_count = count($total_elements[$array_object]);

$my_count now contains the number of elements in $total_elements[$array_object]. I want to convert this number into its corresponding natural number (zero, one, two, ...)

इस विशिष्ट मामले में, मेरे पास केवल 5 संख्याएं हैं :

$numbers  = array(
    2  => 'two',
    3  => 'three',
    4  => 'four',
    5  => 'five',
    6  => 'six',
);

किसी दिए गए सरणी में तत्वों की संख्या को पुनर्प्राप्त करने के लिए और फिर सरणी से संबंधित प्राकृतिक संख्या (मानव पठनीय संख्या) echo कैसे प्राप्त करें? या बेहतर अभी तक - क्या ऐसा करने का एक बेहतर तरीका है?

(मुझे कुछ फ़ंक्शंस या < एक href = "http://www.techrepublic.com/article/converting-numbers-to-words-in-php/" rel = "nofollow"> कक्षाएं बस ऐसा करने के लिए - लेकिन अब वे रास्ते हैं मुझे अभी आवश्यक साधारण मामले के लिए भी फूला हुआ)

अब, निश्चित रूप से मैं इसे switch() के साथ कर सकता हूं:

switch ($my_count) {
    case 0:
        echo "zero";
        break;
    case 1:
        echo "one";
        break;
    case 2:
        echo "two";
        break;
     //etc...
}

लेकिन यह सिर्फ मेरे लिए सुरुचिपूर्ण नहीं लग रहा है। और अगर कोई 10 से अधिक संख्या है तो भी बेवकूफ है।

मुझे यकीन है कि इसे प्राप्त करने का एक और शानदार तरीका है, और फिर भी मेरे पास केवल 5 संख्याएं हैं, फिर भी मैं अन्य मामलों में पुन: उपयोग करने के लिए कुछ फ़ंक्शन करना चाहता हूं।

(मुझे खेद है कि यह एक बेवकूफ सवाल है - लेकिन - खोजशब्दों के साथ एसई या Google पर खोज <कोड> PHP - words और count() I केवल स्ट्रिंग में गिनती शब्दों से संबंधित उत्तरों पाए गए)

0

5 उत्तर

यदि यह केवल कुछ मुट्ठी भर है:

$number = count($yournameit);
$count_words = array( "zero", "one" , "two", "three", "four" );
echo $count_words[$number];
0
जोड़ा
यह इतना आसान है, मैं शर्मिंदा हूं - मुझे लगता है कि मैं थक गया हूं (फिर भी, इस प्रश्न के लिए 3 वोट वोट अजीब हैं)।
जोड़ा लेखक Obmerk Kronen, स्रोत
ओपी ने कहा कि उसे नहीं पता था कि इसका उपयोग कैसे करें .. तो यहां यह है
जोड़ा लेखक w00d, स्रोत
ऐसा लगता है कि ओपी पहले से ही इसे कैसे प्रस्तुत करता है, स्थानांतरित सूचकांक के साथ - हालांकि इसमें "पांच" और "छः" गायब है। (मैंने अभी भी वोट दिया है क्योंकि यह दिखाया गया है कि यह देखने के लिए कैसे दिखाता है।)
जोड़ा लेखक user2864740, स्रोत

Pear has a packge for number words. Check this out pear Number_word

$numbers = new Number_Words();
echo $number->toWords(200);

यह तुम्हे मदद करेगा

EDIT

आप PHP में NumberFormatter कक्षा का उपयोग कर सकते हैं।

$f = new NumberFormatter("en", NumberFormatter::SPELLOUT);  
echo $f->format(200);

यह "दो सौ" उत्पादन करेगा

0
जोड़ा
+1 धन्यवाद, मैंने इसे देखा है, लेकिन वर्तमान सर्वर का समर्थन नहीं करता है :-(
जोड़ा लेखक Obmerk Kronen, स्रोत

पीयर नंबर_Words पैकेज शब्दों में वर्तनी अंकों के तरीकों को प्रदान करता है।

संदर्भ:

PEAR: http://pear.php.net/package/Numbers_Words

PECL: http://php.net/manual/en/numberformatter.format.php

उदाहरण:

echo number_to_word( '2281941596' );

//Sample output - number_to_word
Two Billion, Two Hundreds Eighty One Million, Nine Hundreds Forty One Thousand and Five Hundreds Ninety Six

//Sample output - PEAR Class
 two billion two hundred eighty-one million nine hundred forty-one thousand five hundred ninety-six
0
जोड़ा

यदि आपको केवल 5 नंबरों को पुनर्प्राप्त करने की आवश्यकता है, तो वर्तमान दृष्टिकोण ठीक है। एक एसोसिएटिव सरणी बनाएं जिसमें संख्याएं कुंजी और संबंधित शब्द मान के रूप में हों:

$numberArray  = array(
    0  => 'zero',
    1  => 'one',
    2  => 'two',
    3  => 'three',
    4  => 'four',
    5  => 'five',
    6  => 'six',
   //...
);

अब, $ my_count से संबंधित शब्द को पुनर्प्राप्त करने के लिए:

$my_count = 2;
echo $numberArray[$my_count];//=> two

आप वैकल्पिक रूप से जांच सकते हैं कि echo करने की कोशिश करने से पहले इंडेक्स को isset() का उपयोग करके परिभाषित किया गया है या नहीं। यह दृष्टिकोण 10 तक की संख्या के लिए काम करेगा। हालांकि, यह स्पष्ट रूप से बड़ी संख्या के लिए काम नहीं करेगा क्योंकि इसे अधिक जटिल नियमों की आवश्यकता है। एक ऐसा फ़ंक्शन बनाना आसान नहीं है जो कोड की 10 या 20 पंक्तियों में करता है। मेरा सुझाव है कि आप स्क्रैच से एक बनाने की कोशिश करने के बजाय मौजूदा समाधान का उपयोग करें। Number_Words PEAR क्लास पर एक नज़र डालें।

0
जोड़ा
मुझे लगता है कि आप गलत समझते हैं .. मुझे count() चाहिए, लेकिन मैं परिणाम को मानव पठनीय तरीके से आउटपुट करना चाहता हूं
जोड़ा लेखक Obmerk Kronen, स्रोत
नहीं - और यह मूल प्रश्न में कहा गया है
जोड़ा लेखक Obmerk Kronen, स्रोत
धन्यवाद - यह वास्तव में आईएमएचओ अधिक सुरुचिपूर्ण है, और मैंने पहले से ही अपने (सहयोगी) सरणी के साथ काम करने के लिए @ w00d उत्तर अनुकूलित कर लिया है। लेकिन चूंकि मैंने पहले से ही w00d उत्तर का उपयोग किया है, इसलिए मैं स्वीकार नहीं करना चाहता यह हालांकि मैं यहां अच्छे लोगों की मदद की सराहना करता हूं :-)। और इन उत्तरों को हमेशा भविष्य के संदर्भ के लिए छोड़ दिया जाता है (जो कि एसई के बारे में है)। एक बार फिर धन्यवाद
जोड़ा लेखक Obmerk Kronen, स्रोत

Theres no quick and easy way to achieve this with an inbuilt PHP function, however you can do it with this pear package: http://pear.php.net/package/Numbers_Words

0
जोड़ा
धन्यवाद - सर्वर सीमाओं के कारण उपयोग नहीं कर सकता :-( +1
जोड़ा लेखक Obmerk Kronen, स्रोत