entriko adlı üyeden alıntı:
mesajı görüntüle
odullu PHP sorusu
14
●600
- 21-02-2022, 09:46:52
[COLOR=#D9DAE9 adlı üyeden alıntı:
norosezene = 017 burada seven v nerede?
tifowoxoursne =1246, bunun 1246 olduğu nereden anlaşılıyor 2146 niye değil?
Sıralama hep küçükten büyüğe olacaksa çok kolay ki.
Gelen stringi karakterlere böl, sonra tek tek sayılara karşılık gelen karakterler varsa sil ve bunu string bitene kadar hesapla.
- 21-02-2022, 11:49:56entriko adlı üyeden alıntı: mesajı görüntüle
Alternatif çözüm;
(Belirtilmemiş ama eğer gerekirse bir kaç değişiklikle sonuç bulunduktan bir sonraki aramayı önceki sonuçtan geriye kalan karakterler üzerinde yapabilirsiniz.)
$_charset = 'owoftnuoer'; $_arr = array( 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'); $_findNumber = function ( string $chars, string $text ) use ( $_arr ): int|bool { $match = null; foreach( str_split( $text ) as $char ) { if ( str_contains($chars, $char) ) { $chars = substr_replace( $chars, '', strpos( $chars, $char ), 1 ); $match .= $char; } } return $match === $text ? array_search( $text, $_arr ) : false; }; foreach ( $_arr as $text ) { echo $_findNumber( $_charset, $text ); } - 21-02-2022, 21:05:29gectim hocam odemeyi attiginiz iban aPolat adlı üyeden alıntı: mesajı görüntüle
harfleri karistirirken v yi silmisim sanirim.Seyit25 adlı üyeden alıntı: mesajı görüntüle
rakamlarin yeri cok onemli degil, dogru rakamlar basildiktan sonra, onlari siralamak kolay zaten.
kelime ile ifade etmesi bence de cok kolay, koda dokene nacizane ufak bir odul gonderdim 👍🏽
hocam bu kodda 4 satir, yani int|bool kisminda hata veriyor, ben zaten boyle php fonksiyonu gormedim daha once, ya advanced bir kullanim ben bilmiyorum ya da baska bir dilldeki kullanim ile karistirdiniz galibaZEON adlı üyeden alıntı: mesajı görüntüle - 21-02-2022, 22:20:33Buyrun hocam; yanlış sonuç bulma ihtimali yoktur.entriko adlı üyeden alıntı: mesajı görüntüle
<?php $alfabe = array("zero","one","two","three","four","five","six","seven","eight","nine"); $value = "tifowoxoursne"; $bulunansayilar = ""; $valuechars = str_split($value); $valuechars_orj = str_split($value); for ($a = 0; $a < count($alfabe); $a++) { $myChars = str_split($alfabe[$a]); $sayiuzunluk = 0; for ($b = 0; $b < count($myChars); $b++) { for ($c = 0; $c < count($valuechars); $c++) { if ($myChars[$b] == $valuechars[$c] && $valuechars[$c]!=' ') { $sayiuzunluk += 1; $valuechars[$c] = ' '; break; } } if ($b + 1 == count($myChars)) { if (count($myChars) == $sayiuzunluk) { $bulunansayilar = $bulunansayilar ."," .($a); $valuechars_orj=$valuechars; } else { $valuechars=$valuechars_orj; } } } } echo $bulunansayilar; ?> - 22-02-2022, 00:26:38Henüz o kadar yaşlanmadım ama muhtemelen PHPnin eski bir versiyonunu kullanıyorsunuzdur. PHP 8 ve üzerinde çalışır. Ayrıca : int|bool kısmı silinebilir de, kullanımı zorunlu değil.entriko adlı üyeden alıntı: mesajı görüntüle