Array Wert bekannt und Schlüssel herrausfinden

FipsTheThief

Erfahrenes Mitglied
Also ich bin eben an einen Counter dran , in diesem Speicher ich mir die IP´s und einen Timestamp ab welcher jetzige Zeit + 1 Stunde gilt.

Somit mache ich mir folgendes Array :

PHP:
<?php
ignoredIP = array( "timestamp" => "135.45.187.15",
                           "timestamp" => "185.124.13.245",
                           ...
                           );
?>

so die IP des benutzers ist ja leicht herrauszufinden an dieser Stelle , und dann will ich überprüfen ob die IP schon im Array enthalten ist.
Wenn sie es ist dann schaun wir erstmal nach ist der Schlüssel schon kleiner als der aktuelle timestamp.
Wenn ja dann löschen wir diesen schlüssel einfach mal raus.

So ich hänge momentan daran das ich mir nicht einfach den schlüssel zu dem Element ausgeben lassen kann.
Das heisst ich würde ungern erstmal das komplette Array durchlaufn und dann den Schlüssel dazu ausgeben lassen , gibt es eine Möglichkeit gleich zum entsprechenden Wert zu springen und dessen Schlüssel auszulesen ?

Mir fehlt irgendwie der Ansatz.

MfG
 
Ein einfaches foreach-Konstrukt könnte helfen:
PHP:
<?php

	foreach( $ignoredIP as $key => $value ) {
		if( $value === $comparisonValue ) {
			break;
		}
	}
	echo $key;

?>
 
Ich hab es vor lauter Freude nochmal eröffnet da kleine Probleme auftreten , wie sollte es sonst auch sein.

Also bin jetzt erstmal soweit gekommen das eine IP mit aktuellen timestamp gespeichert wird in der Datei und mit serialize gespeichert wird.
Datei war nicht leer , IP nicht gefunden neue IP mit Timestamp in einen Array abgelegt.

und dann wollte ich sie verbinden und neu reinschreiben und das kommt dabei raus:

Code:
Array
(
    [1130862586] => 139.18.193.65 <- neueste IP 
)
Array
(
    [1130861128] => 189.18.193.65 <- IP die bereits drinnen steht
)

Nach array_merge(der 2 Arrays) 

Array
(
    [0] => 139.18.193.65
    [1] => 189.18.193.65
)

Soweit bin ich dahinter gekommen , das es an den timestamp liegt da es ein int wert ist.
Wenn dort ein String steht dann passt das wieder.

Also hab ich momentan 2 Optionen :

Entweder man kann den Int wert als String umschreiben (was nicht geht glaub ich) , wenn doch bitte sagen wie.

Oder alles komplett überarbeiten , letzte auszudenkende Alternative *G*

Wenn wer eine Idee hat wäre ja klasse :)
 
Zurück