Zahlenreihe prüfen.

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Muldini

Zahlenreihe prüfen.

Beitrag von Muldini »

Hi, gibt es eine Funktion die prüft ob eine Zahl in einer Reihe fehlt ?

Mfg
Muldini
Seether
Mitglied
Beiträge: 1446
Registriert: 10.10.2002 23:42

Beitrag von Seether »

Kann ich mir nicht vorstellen. Dafür müsste es ja erst mal ne Funktion geben die ne Zahlenreihe entschlüsselt......


S.
Muldini

Beitrag von Muldini »

Ok, danke, hab mir selbst gedanken gemacht und ich glaub die Lösung ist nicht die schlechteste ;)

Mfg
Muldini
Benutzeravatar
King Crusty
Mitglied
Beiträge: 209
Registriert: 20.04.2002 11:58
Wohnort: Deggendorf - Altötting
Kontaktdaten:

Beitrag von King Crusty »

das ist kein Problem, wenn die Reihe nach einem Schema aufgebaut ist, wie z.B. 2,5,6,8,10 - dann kannst du deine jeweiligen array elemente miteinander vergleichen
Muldini

Beitrag von Muldini »

Falls wen die Lösung meines Problems interessiert, hier ist sie ;)

Code: Alles auswählen

function get_id($titel)
	{
		global $db;
		$buchstabe = substr($titel,0,1);
		$buchstabe = strtoupper($buchstabe);
		$liste = strtolower($_COOKIE[nick]);
		
		$sql = "SELECT id FROM `filmliste_$liste` WHERE `titel` like '$buchstabe%'";
		$query = mysql_query($sql, $db);	
		
		while($zeile=mysql_fetch_object($query))
		{
			$array1[] = $zeile->id;
		}
			
    $backup = $array1;
    $last = (int)substr(array_pop($array1),2);
    $array1 = $backup;
    
    for($i=0;$i<=$last;$i++)
    {
        $array2[$i] = (string) $i+1;
        while(strlen($array2[$i])<3) $array2[$i] = '0'.$array2[$i];
        $array2[$i] = $buchstabe.'_'.$array2[$i];
    }
    
    $vergleich = array_diff($array2,$array1);
    $keys = array_keys($vergleich);
    
    for($i=0;$i<=count($vergleich)-1;$i++)
    {
        $key = $keys[$i];
        $array3[$i] = (int)substr($vergleich[$key],2);
    }
    
    $neueid  = min($array3);
    while(strlen($neueid)<3) $neueid = '0'.$neueid;
    $neueid = $buchstabe.'_'.$neueid;
    
    return $neueid;
	}
Damit mans versteht, die Indexe sehen Beispielsweise so aus: A_001

Mfg
Muldini
Antworten

Zurück zu „Coding & Technik“