note 46987 added to language.operators.array
| From: | Peter at osu1 dot php dot net | Date: | Fri, 29 Oct 2004 14:57:48 +0000 |
| Subject: | note 46987 added to language.operators.array | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-79314@lists.php.net to get a copy of this message | ||
The code from texbungalow at web dot de below is slightly incorrect. If my memory from primary
school history is correct, roman numerals don't allow things like MIM - it has to be MCMXCIX,
ie each step is only 1 level down (sorry, I can't explain it very well.
a print_r($segments) comparing the snippets should explain.
Corrected code:
<?php
function roman ($nr ) {
$base_digits= array (
1=> "I",
10=> "X",
100=> "C",
1000=> "M",
);
$help_digits= array (
5=> "V",
50=> "L",
500=> "D",
);
$all_digits= $base_digits+ $help_digits;
foreach ($base_digits as $key1=> $value1 )
foreach ($all_digits as $key2=> $value2 )
if ($key1< $key2 && $key1 >= ($key2 / 10))
$segments[$key2- $key1 ]= $value1. $value2;
$segments+= $all_digits;
krsort ($segments );
foreach ($segments as $key=> $value )
while ($key<= $nr ) {
$nr-= $key;
$str.= $value;
}
return $str;
}
echo roman (1998); // prints MCMXCVIII
?>
----
Manual Page -- http://www.php.net/manual/en/language.operators.array.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+46987
Delete -- http://master.php.net/manage/user-notes.php?action=delete+46987&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+46987&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+46987&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+46987&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+46987&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+46987&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+46987&report=yes
Search -- http://master.php.net/manage/user-notes.php