我在Testdome上尝试了一个问题,我们必须为给定的输入实现function first(){
/*do stuff*/
return stuff;
}
function second(){
var result = first;
}
方法
用于关联数组groupByOwners
* groupByOwners函数应返回["Input.txt" => "Randy", "Code.py" => "Stan", "Output.txt" => "Randy"]
我创建的代码已成功运行,但其中一项测试失败。我无法弄明白。该网站也没有给出任何线索。
["Randy" => ["Input.txt", "Output.txt"], "Stan" => ["Code.py"]]
这是我创建的代码。样本输出是正确的。但下面的测试用例是错误的。
各种文件:错误答案此测试失败。代码有什么问题? 请看一下相同的链接 https://www.testdome.com/d/php-interview-questions/5
您可以尝试我的代码并查看结果。下面是同样的屏幕截图。
答案 0 :(得分:1)
您的代码失败的原因,因为<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Torch</string>
</resources>
</manifest>
保留了元素键。因此,如果您运行以下数据
array_unique
您将获得以下数组
$files = array
(
"Input.txt" => "Randy",
"Output.txt" => "Randy",
"test.py" => "Stan",
);
注意“Stan”值的索引是如何仍为2.您可以运行此示例并亲眼看看它对“Stan”不起作用。
要解决此问题,您需要重置阵列中的编号。最简单的方法是在array(2) {
[0]=>
string(5) "Randy"
[2]=>
string(4) "Stan"
}
数组上调用array_values
函数,如此
$keys
希望我足够清楚,这有帮助。
答案 1 :(得分:0)
我的解决方案:
class FileOwners
{
public static function groupByOwners($files)
{
$res = [];
foreach ($files as $key => $value) {
$res[$value][] = $key;
}
return $res;
}
}
$files = array
(
"Input.txt" => "Randy",
"Code.py" => "Stan",
"Output.txt" => "Randy"
);
var_dump(FileOwners::groupByOwners($files));