我使用PHP来处理以下输入: SAM 99912222 汤姆 11122222 掠夺 12299933 SAM 爱德华 掠夺 第1到第6行是姓名和电话号码。最后三行是搜索查询,如果名称不在列表中(没有电话号码,打印未找到),否则输出数据。我的代码如下:
<?php
$_fp = fopen("php://stdin", "r");
$list = array();
for($i = 0;$i<3;$i++){
$name = strtolower(fgets($_fp));
$phone = fgets($_fp);
$list["$name"] = $phone;
}
for($i = 0;$i<3;$i++){
$name = fgets($_fp);
if(array_key_exists($name,$list)){
echo "$name".'='."$list[$name]"."\n";
}else{
echo 'Not found'."\n";
}
?>
例外输出应为sam = 99912222未找到harry = 12299933 输出为sam = 99912222未找到未找到。为什么这些功能不起作用? 这是hackerrank的一个问题。 我知道如果我在java中使用hashmap很容易解决。但是如何在PHP中解决这个问题呢? 非常感谢
答案 0 :(得分:0)
首先,通过在任何地方使用trim(fgets($ _ fp))来修剪空白,而不仅仅是fgets($ _ fp) - 这至少可以解决我的问题。
其次,您粘贴的代码缺少第二个for循环的结束花括号。
第三,享受30天的代码:-)(一旦你完成了以上的理顺,你还需要在开头的条目数中读取你的代码,并且&#34;阅读查询直到结束-of-file&#34;在最后)。