Seite 1 von 1

Zahlenreihe prüfen.

Verfasst: 04.06.2003 21:42
von Muldini
Hi, gibt es eine Funktion die prüft ob eine Zahl in einer Reihe fehlt ?

Mfg
Muldini

Verfasst: 04.06.2003 23:53
von Seether
Kann ich mir nicht vorstellen. Dafür müsste es ja erst mal ne Funktion geben die ne Zahlenreihe entschlüsselt......


S.

Verfasst: 05.06.2003 13:12
von Muldini
Ok, danke, hab mir selbst gedanken gemacht und ich glaub die Lösung ist nicht die schlechteste ;)

Mfg
Muldini

Verfasst: 05.06.2003 18:26
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

Verfasst: 06.06.2003 15:31
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