groupByOwnersがその機能を実装:
は各ファイル名のファイルの所有者名を含む連想配列を受け取り。 各所有者名のファイル名の配列を任意の順序で含む連想配列を返します。
例えば、連想配列["Input.txt" => "Randy", "Code.py" => "Stan", "Output.txt" => "Randy"] the groupByOwners function should return ["Randy" => ["Input.txt", "Output.txt"], "Stan" => ["Code.py"]]
の場合。
私はかなり完成しました.2番目のファイル所有者の行を拡張する方法を理解するとともに、array_merge()を使用して問題が発生しました。
は、ここに私のコードです:
<?php
class FileOwners {
public static function groupByOwners($files) {
$i = 0;
$totalOwners=0;
$lastOwners[0] = 0;
$ownerFiles = array();
//input associative array.
foreach ($files as $file => $currentOwner) {
//echo $currentOwner.':'.$file;
// if the last owner checked matches the current, do not backup the owner name.
if ($currentOwner == $lastOwners[$i]) {
//subtract count of how many owners are found by 1.
$totalOwners=$totalOwners-1;
} else {
//Backup the the new owner found.
$namesOfOwners[$i]=$currentOwner;
};
$i++;
$totalOwners++;//count total owners.
$lastOwners[$i] = $currentOwner;
}
$i=0;
$fileCount=0;
// for all owners found (2) test case
foreach ($namesOfOwners as $ownerName) {
//match there own files to there respective arrays, in the order of 0-?
foreach ($files as $file => $currentOwner) {
// if file is matching the current owner and,
if ($ownerName == $currentOwner) {
echo $file.$ownerName;
$ownerFiles[$ownerName] = $file;
}
}
$i++;
}
return print_r($ownerFiles);
}
}
$files = array(
"Input.txt" => "Randy",
"Code.py" => "Stan",
"Output.txt" => "Randy",
);
var_dump(FileOwners::groupByOwners($files));
そして、問題領域はここです。あなたは上記読めば
foreach ($files as $file => $currentOwner) {
// if file is matching the current owner and,
if ($ownerName == $currentOwner) {
echo $file.$ownerName;
$ownerFiles[$ownerName] = $file;
}
}
、問題は、私は、私は私の出力をしたいと思うが、それは、配列のみをサポートしている文字列で連想配列をマージするarray_merge()を使用しようとしているということであるとして:
["Randy" => ["Input.txt"、 "Output.txt"] "Stan" => ["Code.py"]] `
私は自分のために実験室を行っています教育的利益。 groupByOwnersの
1)Returnステートメント()関数:
する必要がありますStackOverflowのへようこそ。 [help]にアクセスして[ask]を読んでください。 「自分のコードを私のために修正してください」と思われる質問は、何がうまくいかないかについてほとんど説明しておらず、あなたがしたことは一般的に下落して話題になってしまいます。 –