下面是使用的数组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;
}
在这里打闹。