私は配列の配列を持っています。各配列には、医療機器によるスキャンの詳細が含まれています。夜間にダンプされるテキストログからこのデータを取得しています。形式はこれです:array_filter array全体をフィルタリングする
$this->scans = array(
array(
'patientid' => (int),
'patientname' => 'John Skeet',
'reviewed' => 0 or 1
//plus more irrelevant
),
array(
//same as above
), //etc
)
それは十分に高い品質のものである場合には、各スキャンをレビューすることができるように重要な配列のキーは、ここで、reviewed
です。ただし、テキストログは、取得されたすべてのスキャンをダンプしてから、戻ってきて、レビューされたものを再表示します。
重複を防ぐために、array_filter
を使用して、取得してレビューしたスキャンを除外することができたと思いました。しかし、フィルタ関数は配列全体をフィルタリングしています(まれな場合を除いて)。誰かが見て、なぜ私は彼らがそれが起こっていると思う理由を知らせることができれば、それは非常に感謝されるだろう。
$this->scans = array_filter($this->scans, array($this, "scan_cleanup"));
。
$scan['reviewed'] = 1;
一つの対
private function scan_cleanup($scan) {
//only if the scan was not reviewed
if ($scan['reviewed'] == 0) {
//change reviewed status to see if there is a duplicate
$scan['reviewed'] == 1;
//return false to remove this copy (and keep reviewed)
if (in_array($scan, $this->scans)) {
return false;
}
}
return true;
}
フィギュア、それはいつもとても簡単です。私はこれを永久にデバッグするのに過ごしました。ありがとう。 – tj111
私が追加した更新は、読みやすさの面でも大いに役立ちます –