我陷入了无法解决的错误消息:'注意:数组到字符串的转换'我试图打印数组的最大值和键。
<?php
$length_array = array();
foreach ($_SERVER as $key => $value) {
$length = strlen($value);
$length_array[$key] = $length;
echo '<pre>';
print_r($key . " = " . $length . " characters");
echo '</pre>';
}
$max_key = array_keys($length_array, max($length_array));
print_r($max_key . " is longest with " . max($length_array) . " characters");
?>
我得到的答案是:数组最长为444个字符
我该如何解决?
致谢!
答案 0 :(得分:1)
array_keys()
返回一个数组。如果您只希望一个键具有此值,则可以改用array_search()
:
$server = array_map("strlen", $_SERVER);
$max = max($server);
$max_key = array_search($max, $server);
echo "$max_key is longest with $max characters";
答案 1 :(得分:0)
问题是$_SERVER
包含数组值和字符串值,具体是:
[argv] => Array
(
[0] => /run_dir/repl.php
)
在您的情况下,您将无法在此数组上调用strlen()
,也无法用返回的字符串来连接array_keys()
返回的数组:
Array
(
[0] => GPG_KEYS
)
您可以使用is_array检查每个项目的类型并进行相应处理。