Chiffres à Chiffres Romains avec php
J'ai besoin de transformer l'ordinaire des numéros en chiffres Romains avec php et j'ai ce code:
<?php
function roman2number($roman){
$conv = array(
array("letter" => 'I', "number" => 1),
array("letter" => 'V', "number" => 5),
array("letter" => 'X', "number" => 10),
array("letter" => 'L', "number" => 50),
array("letter" => 'C', "number" => 100),
array("letter" => 'D', "number" => 500),
array("letter" => 'M', "number" => 1000),
array("letter" => 0, "number" => 0)
);
$arabic = 0;
$state = 0;
$sidx = 0;
$len = strlen($roman);
while ($len >= 0) {
$i = 0;
$sidx = $len;
while ($conv[$i]['number'] > 0) {
if (strtoupper(@$roman[$sidx]) == $conv[$i]['letter']) {
if ($state > $conv[$i]['number']) {
$arabic -= $conv[$i]['number'];
} else {
$arabic += $conv[$i]['number'];
$state = $conv[$i]['number'];
}
}
$i++;
}
$len--;
}
return($arabic);
}
function number2roman($num,$isUpper=true) {
$n = intval($num);
$res = '';
/*** roman_numerals array ***/
$roman_numerals = array(
'M' => 1000,
'CM' => 900,
'D' => 500,
'CD' => 400,
'C' => 100,
'XC' => 90,
'L' => 50,
'XL' => 40,
'X' => 10,
'IX' => 9,
'V' => 5,
'IV' => 4,
'I' => 1
);
foreach ($roman_numerals as $roman => $number)
{
/*** divide to get matches ***/
$matches = intval($n / $number);
/*** assign the roman char * $matches ***/
$res .= str_repeat($roman, $matches);
/*** substract from the number ***/
$n = $n % $number;
}
/*** return the res ***/
if($isUpper) return $res;
else return strtolower($res);
}
/* TEST */
echo $s=number2roman(6,true);
echo "\n and bacK:\n";
echo roman2number($s);
?>
essayer de cette façon, mais ne fonctionne pas:
echo $s=number2roman((.$row['id'].),true);
echo "\n and bacK:\n";
echo roman2number($s);
le problème est que j'ai besoin de changer les numéros sont des lectures de ma base de données sql et ne sais pas comment, à partir et à travers.
Double Possible: stackoverflow.com/questions/267351/...
n'est pas le cas
Oh le titre est à l'envers. Ici, vous allez: stackoverflow.com/questions/6265596/...
Nombre De Romain en PHP
mkaatman cette page est l'inverse de mon problème!
n'est pas le cas
Oh le titre est à l'envers. Ici, vous allez: stackoverflow.com/questions/6265596/...
Nombre De Romain en PHP
mkaatman cette page est l'inverse de mon problème!
OriginalL'auteur LukasMakey | 2013-02-21
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé ce code ici: http://php.net/manual/en/function.base-convert.php
Optimisé et embellie de la fonction:
echo romanic_number(5); // renvoie "V"
mais j'ai besoin de transformer une lecture de MYSQL et ce code ne fonctionne pas:
echo romanic_number(. $row['id'].);
je suis désolé, ne gère pas bien le php pour le moment.Non, le problème n'est pas la fonction. Je vous suggère d'apprendre à manipuler les variables dans les fonctions et les tableaux, vous avez besoin de le dire ...".echo romanic_number($row_id)."...
Oh, merci beaucoup, j'ai pu le faire fonctionner!
OriginalL'auteur
Une autre façon de faire
OriginalL'auteur Muhammad Tahir
Illegal offset at ''
. J'ai mis@$c[...
et il semble être parfait.qui éteint les rapports d'erreurs, bien sûr il vous regard parfait.
OriginalL'auteur Jasiek
Découvrez ma solution ici https://github.com/frostymarvelous/Whisppa-Libs/blob/master/Misc/Numeralo.php . Il fonctionne dans les deux sens.
OriginalL'auteur frostymarvelous
Il est illégal de décalage question.
Remplacer
avec
OriginalL'auteur Reto
Faire une classe ayant le nom RomanNumerials et ajouter un protégé de propriété statique comme défini:
puis ajouter une méthode comme suit
OriginalL'auteur Haider Lasani