我有这段代码,它计算字符串中“字母数字”的总和,但其输出是:
int(64)
。 64
是 T
(20)、E
(2)、S
(19)、T
(20) --> 20+5+19+20=64
的总和。
我只想要数字作为输出
64
而不是int(64)
。
这是代码:
$data = "test";
$testResult = array_values(
array_merge(
array_fill_keys(
range('A','Z'),
0
),
array_count_values(
str_split(
strtoupper($data)
)
)
)
);
$wordCount = 0;
foreach ($testResult as $letterValue => $letterCount) {
$wordCount += ++$letterValue * $letterCount;
}
var_dump($wordCount);
echo $wordCount;
而不是
var_dump($wordCount);
var_dump 为您提供有关变量的所有信息,(int) 让您知道它是一个整数,如果您只是回显它,您将看不到 (int)。
PHP 函数 var_dump() 除了变量值之外还显示变量及其类型的结构化信息。您只需 echo 或 print() 变量即可。
您需要使用 echo 而不是 var_dump。 Var_dump 为您提供有关变量的附加信息。如果 $wordCount 是一个数组而不是一个 int,它将显示 Array(size){values...}
阅读 vardump 手册这里
我希望这能解决您的问题。 问候, 斯特凡
关于您的实际脚本,可以通过将每个字母的
ord()
值相加来简化(小于96,因为小写字母在Ascii表上是从97开始)。我的脚本假设仅使用单字节小写字母作为输入。
代码:(演示)
$data = "test";
echo array_reduce(
str_split($data),
fn($sum, $char) => $sum + ord($char) - 96,
);
// outputs: 64
除了该片段之外,
var_dump()
的输出还包括有关该值的元数据。
您可以选择多种函数和语言结构来呈现您的数据。重要的是要记住,虽然技术有细微的行为,但如果您将数据打印到文档(html、txt 或其他内容),则需要将非平面数据类型转换为平面数据类型。请注意,在下面的演示中,某些数据类型在打印时显示不同或根本不显示。对于非扁平数据,我的演示会将数据编码为 JSON 字符串,但有不同的方法可以生成扁平值。
代码:(演示)
$tests = [
'false' => false,
'true' => true,
'null' => null,
'0' => 0,
'0.1' => 0.1,
'a' => 'a',
'[\'foo\']' => ['foo'],
'(object) [\'bar\', \'bar\']' => (object) ['bar', 'bar'],
];
echo "<table border=1>";
echo '<tr><th>input</th><th>echo</th><th>printf</th><th>print_r</th><th>var_export</th><th>var_dump</th></tr>';
foreach ($tests as $input => $test) {
echo "<tr>";
echo "<th>$input</th><td>";
echo is_array($test) || is_object($test) ? json_encode($test) : $test;
echo "</td><td>";
printf('%s', is_array($test) || is_object($test) ? json_encode($test) : $test);
echo "</td><td>";
print_r($test);
echo "</td><td>";
var_export($test);
echo "</td><td>";
var_dump($test);
echo "</td></tr>";
}
echo "</table>";