Hallo allemaal,

Hoe kan ik een array zo filteren dat hij alle unieken waarden weergeeft?
dus als ik 30 lines heb met een dezelfde waarde en 40 van een ander, dat hij van beide maar 1 weergeeft. Deze array word niet gehaald uit een DB maar uit een TXT bestand.

Alvast bedankt!
[php]array_unique[/php]()
voor de hand liggend :p

Maar die pakt dus de gehele string. ik moet dus een bepaalde positie uit een string filteren.
Ik zou zorgen dat je elke line onder een aparte key in je array krijgt door je txt bestand met file() uit te lezen. Vervolgens array_unique() toepassen en je houdt een array over met alleen maar unieke lines.
dat had ik dus al gedaan. Alleen het probleem is dat iedere line bestaat uit een array op zich. Zo dus:

01-02-2007; robbie williams; 25; arjan van buuren;
01-02-2007; robbie williams; 23; dirk van pietersen;
01-02-2007; robbie williams; 28; jeroen zeeman;
01-02-2007; robbie williams; 21; Arie de groot;
09-02-2007; Tiesto; 12; Peter de vliete;
09-02-2007; Tiesto; 23; Dirkje Hoorn;
09-02-2007; Tiesto; 19; Inge de bruin;

Zo staat het dus in het tekstbestand. En die wil ik dus filteren zodat je alleen de unieke artiesten in dit geval te zien krijgt.

dus:

Robbie Williams
Tiesto

En als het mogelijk is de getallen die erachter staan bij elkaar op te tellen.
[edit]
Hier stond hetzelfde als hieronder maar dan onduidelijker :P
[/edit]
<?php
$lines = file('voorbeeld.txt');

$artiesten = array();
foreach($lines as $line)
{
$expl = explode('; ', $line);
$artiesten[] = $expl[1];
}

$unique_artiesten = array_unique($artiesten);
?>

Het optellen van die getallen erachter wordt een stukje lastiger aangezien je moet controleren welk getal bij welke artiest hoort. Maar mag ik vragen waarom je voor dit feit geen database gebruikt? Dat zou het leven een stuk makkelijker maken.
dit is neit voor mij, dit is voor een bestaand yssteem die alle opslaat in een txt bestand. Ik vind het ook waardeloos, maar tsja, het gebeurt nu eenmaal :p
Om alle gegevens die ik nodig heb in één array te stoppen, kan ik dat doen zoals hieronder? blijkabar niet, want zoals ik het heb gedaan geeft hij 0 terug.
<?
for($i=0;$i<=$rows;$i++) {
$content = explode(";", $file[$i]);
$info = array("artiest" => $content[9],
"orders" => $content[12],
"omzet" => $content[13]
);
}
?>

Reageren