php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.09.2005, 17:08  
Benutzer
 
Registriert seit: 25.10.2004
Beiträge: 43
bratwurstschorsch
Standard problemem mit array_unique()

ich hab ein array, in dem einträge zum Teil doppelt vorkommen. nun will ich gerne die doppelten einträge entfernen. irgendwie funktioniert es nicht.
Code:
<?php
$a[] = 1;
$a[] = 2;
$a[] = 3;
$a[] = 1;
$a[] = 3;
$a[] = 4;
$a[] = 5;

$a = array_unique($a);

$anz = count($a);
echo "Anzahl = ".$anz."
";
for ($i = 0; $i < $anz; $i++) {
	echo $i."=".$a[$i]."
";
}
?>
Als ergebnis wird das hier ausgegeben.
Zitat:
Anzahl = 5
0=1
1=2
2=3
3=
4=
normalerweise sollte doch aber eigentlich das da stehen:
0=1
1=2
2=3
3=4
4=5

vielen dank schon mal für die hilfe
bratwurstschorsch ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.09.2005, 17:29  
Benutzer
 
Registriert seit: 26.09.2005
Beiträge: 52
BlackHawkDC
Standard

Das ist schon ok so.
Wie in der Doku steht, werden die Schlüssel beibehalten.
Wenn du bei erstellen des Arrays keine Schlüssel angibst, so fängt php bei 0 an zu zählen.
Am besten du machst mal ein var_dump() auf das array vor und nach dem array_unique und duu wirst sehen was ich meine.

Wie gesagt, so steht es auch in der Doku von php.
BlackHawkDC ist offline  
Alt 26.09.2005, 17:33  
Benutzer
 
Registriert seit: 25.10.2004
Beiträge: 43
bratwurstschorsch
Standard

ah danke für die antwort. hatte die doku davor auch gelesen, aber leider nicht ganz verstanden aber wer suchet der findet. so funktionierts jetzt, obwohl ich es nicht ganz nachvollziehen kann.
PHP-Code:
<?php

function DoppelteWerteEntfernen($AlterArray) {
        
$AlterArray array_unique($AlterArray);
        
$i=0;
        foreach(
$AlterArray as $Wert)
        {
           
$NeuerArray[$i] = $Wert;
           
$i++;
        }
        return 
$NeuerArray;
}

$a[] = 1;
$a[] = 2;
$a[] = 3;
$a[] = 1;
$a[] = 3;
$a[] = 4;
$a[] = 5;


$a DoppelteWerteEntfernen($a);

$anz count($a);
echo 
"Anzahl = ".$anz."
"
;
for (
$i 0$i $anz$i++) {
    echo 
$i."=".$a[$i]."
"
;
}

?>
bratwurstschorsch ist offline  
Alt 26.09.2005, 17:46  
Benutzer
 
Registriert seit: 26.09.2005
Beiträge: 52
BlackHawkDC
Standard

Vorschlag für die Funktion:

PHP-Code:
<?php
function DoppelteWerteEntfernen($AlterArray) {
    
$b = array();
    foreach(
$AlterArray as $value) {
        if ( 
false == in_array($value$b)) {
            
$b[] = $value;
        }
    }
    
    return 
$b;
}
?>
BlackHawkDC ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array_unique schlüssel, php array_unique, array_unique php, array_unique schlüssel, array_unique, array_unique key lücke, array_unique lücken, php foreach array_unique, forech php beginnt nicht bei 0, php foreach und array_unique, array_unique neue schlüssel, array_unique problem entfernt einträge, array_unique anzahl, php foreach keine doppelte werte, php array unique schluessel beibehalten, array_unique schlüssel ohne lücken, php foreach(array_unique, array_unique beginnt nicht bei 0 zum zählen, php array_unique neuer schlüssel, php array_unique()

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.