Ik heb een script gemaakt wat uit een text file de username van iemand opslaat in een array. Nu kan het zijn dat de username er meerdere keren in voorkomt.
Omdat ik dat niet wil heb ik met wat zoek werk een stukkie code gevonden wat een nieuwe array aanmaakt, daar de eerste occurence van een string in stopt en als deze nogmaals voorkomt niet.
Maar wat ik nu eigenlijk wel wil is dat ik weet hoe vaak de string voorkwam in mijn eerste array.
Nu is er binnen PHP een functie substr_count maar daar kom ik niet ver mee omdat ik niet goed weet of ik dat wel op mijn array kan toepassen.
Heeft iemand een idee om dit op te lossen? Kan ik bijvoorbeeld in de nieuwe array die gemaakt wordt een teller steeds ophogen als de waarde weer voorkomt. En hoe kan ik dat precies doen, in mijn eerste array een tweede lege waarde meegeven en die later in de nieuwe array steeds ophogen als de string voorkomt?
Hieronder mijn huidige code:
Omdat ik dat niet wil heb ik met wat zoek werk een stukkie code gevonden wat een nieuwe array aanmaakt, daar de eerste occurence van een string in stopt en als deze nogmaals voorkomt niet.
Maar wat ik nu eigenlijk wel wil is dat ik weet hoe vaak de string voorkwam in mijn eerste array.
Nu is er binnen PHP een functie substr_count maar daar kom ik niet ver mee omdat ik niet goed weet of ik dat wel op mijn array kan toepassen.
Heeft iemand een idee om dit op te lossen? Kan ik bijvoorbeeld in de nieuwe array die gemaakt wordt een teller steeds ophogen als de waarde weer voorkomt. En hoe kan ik dat precies doen, in mijn eerste array een tweede lege waarde meegeven en die later in de nieuwe array steeds ophogen als de string voorkomt?
Hieronder mijn huidige code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| $filename = "logs/".$_POST['logbestanden']; $seperator = ","; $lines = file($filename); // loop door text file foreach ($lines as $line) { $line = rtrim($line); // haal de regel uit elkaar $user = explode($seperator, $line); $username = substr($user[7],0,-4); $user_array[] = array('username' => strtolower($username)); } $new = array(); $exclude = array(""); for ($i = 0; $i<=count($user_array)-1; $i++) { if (!in_array(trim($user_array[$i]['username']),$exclude)) { $new[] = $user_array[$i]; $exclude[] = trim($user_array[$i]['username']); } } sort($new); foreach($new as $key => $value) { echo $value['username']."<br/>"; } |