VBA to PHP
06.12.2005 07:36:57
Conny
Tipp ist ein Array aus Strings in diesem soll ein String der sich hinter Rennen verbirgt gesucht werden. Ist dies der Fall, so soll die Funktion die Zahl Punkte zurückgeben, falls nicht soll 0 zurück gegeben werden.
Private Function imTipp(Tipp As Object, Rennen, Punkte As Integer) As Integer
'Tipp = (Feld) aller getippten Fahrer für ein Rennen
'Rennen = Platzierung eines Fahrers (Name) in diesem Rennen
'Punkte = Tipppunkte nach Tippregeln
Dim Platz As Object
imTipp = 0
If Rennen <> "" Then
For Each Platz In Tipp
If Rennen = Platz Then imTipp = Punkte: Exit Function
Next Platz
End If
End Function
Diese Funktion durchläuft zwei Spalten. Beide Spalten müssen AnzahlRichtige in identischer Reihenfolge dastehen, ist dies der Fall, so gibt die Funktion ebenfalls den Wert der bei Punkten steht zurück.
Private Function richtigerTipp(Zieleinlauf As Object, AnzahlRichtige As Integer, Punkte As Integer) As Integer
'Zieleinlauf = (Feld) Platzierungen im Rennen
'AnzahlRichtige = davon in richtiger Reihenfolge
'Punkte = Tipppunkte nach Tippregeln
Dim RT As Object
richtigerTipp = 0: i = 1
For Each RT In Zieleinlauf
strCellTipp = vbNullString
strCellRennen = vbNullString
strCellTipp = RT(1, 0) 'Tipp
strCellRennen = RT(1, 1) 'Rennen
If (strCellTipp <> strCellRennen) Or _
(AnzahlRichtige - i > 0 And RT(2, 1) = "") Or _
RT(1, 1) = "" Then richtigerTipp = 0: Exit Function
If i = AnzahlRichtige + 1 Then Exit Function
richtigerTipp = Punkte: i = i + 1
Next RT
End Function
Nun mein PHP Versuch:
//$punkt = imTipp(array(AP,NH,ZU,MS,DC),'MS',2);
Diese Funktion entspricht in etwa der ersten aus Excel.
function imTipp($Tipp, $Rennen, $Punkte)
{
//Tipp = (Feld) aller getippten Fahrer für ein Rennen
//Rennen = Platzierung eines Fahrers (Name) in diesem Rennen
//Punkte = Tipppunkte nach Tippregeln
If ($Rennen "")
{
foreach($Tipp as $P => $Platz)
{
If ($Rennen == $Platz)
{
return $Punkte;
exit();
}
}
}
return 0;
}
//echo "Punkte: ".$punkt;
//$punkt2 = imTipp2(array(AP,NL,ZU,IO,DC,WE),array(AP,NH,ZU,OP,DC),2);
Diese Funktion entspricht immer noch mehr der Ersten und ist für meinen Zweck auch brauchbar. Jedoch wird die Anzahl der gleichen Elemente ermittelt, nicht jedoch das sie in der selben Reihenfolge sind.
function imTipp2($RennTipp, $Zieleinlauf, $Punkte)
{
//RennTipp = (Feld) getippte Platzierungen
//Zieleinlauf = (Feld) Platzierungen im Rennen
//Punkte = Tipppunkte nach Tippregeln
$i = 0;
foreach ($Zieleinlauf as $R => $Rennen)
{
foreach($RennTipp as $T => $Tipp)
{
If ($Tipp == $Rennen)
{
$i++;
}
}
}
return $i*$Punkte;
}
//echo "
Punkte2: ".$punkt2."
";
Hat jemand ne Idee wie ich die zweite VBA-Funktion in PHP überstetzen kann?
Gruß Conny