使用Word的数组值,例如Two-2、Three-3



下面是使用的数组i m

$a = array("1"=>2,"2"=>8,"3"=>9,"4"=>8,"5"=>6,"6"=>7,"7"=>9,"8"=>2);

我正试图得到这样的输出当2打印Two-2时,当3打印Three-3 时

//Desired Output
Two - 2
Eight -8
Nine - 9

我通过使用另一个阵列得到了这个想要的输出

这段代码在array_map((函数中使用null作为回调创建数组数组

$b = array("Two", "Eight", "Nine", "Eight", "Six", "Seven", "Nine", "Two");
$array = array_map(null, $a, $b);

foreach($array as $value) {

echo $value[1]."-".$value[0]."<br>";
}

因此,我想做的是在不使用另一个数组$b的情况下获得所需的OUTPUT。我不知道如何在不使用另一个数组的情况下进行操作。这可能与任何条件有关吗?还是我在问一个愚蠢的问题?我刚开始学习php。

我试着找到解决方案,但没有找到。如果已经有了解决方案,请参阅

// $a = array("1"=>2,"2"=>8,"3"=>9,"4"=>8,"5"=>6,"6"=>7,"7"=>9,"8"=>2); // used short array notation (see references) and removed keys (since not used)
$numbers = [2,8,9,8,6,7,9,2,95890814984141]; // the last number is for my pleasure :P
$numberFormatter = new NumberFormatter('en', NumberFormatter::SPELLOUT);
foreach ($numbers as $number) {
$numberSpelled = $numberFormatter->format($number);
$numberSpelledWithFirstCharUpper = ucfirst($numberSpelled);

echo $numberSpelledWithFirstCharUpper . ' - ' . $number . PHP_EOL;
}

输出

Two - 2
Eight - 8
Nine - 9
Eight - 8
Six - 6
Seven - 7
Nine - 9
Two - 2
Ninety-five trillion eight hundred ninety billion eight hundred fourteen million nine hundred eighty-four thousand one hundred forty-one - 95890814984141

工作示例。

参考文献

  • NumberFormatter
  • 短数组表示法
  • ucfirst
  • 当有人回答我的问题时,我该怎么办

专业提示

给变量起一个有意义的名字,使代码更容易阅读和理解。

是的,你必须为此创建另一个数组或将值放在现有数组上。但如果你不使用array_map(),这将是一种很好的做法。

foreach($a as $key=>$value) {

echo $b[$key]."-".$value."<br>";

添加查找数组和:

$lookup = [
'zero',
'one',
'two',
'three',
'four',
// etc...
];
$a = array("1"=>2,"2"=>4,"3"=>1,"4"=>1,"5"=>2,"6"=>3,"7"=>3,"8"=>2);
foreach ($a as $num) {
echo $lookup[$num] . '-' . $num;
}

在这里打闹。

相关内容

最新更新