PHP Array

maio81

Grünschnabel
hy!!

ich hab ein kleines problemchen. und zwar hab ich mehrere auflösungen in einem array, und zwar so:
PHP:
$res = array("800x600", "1024x768", "1280x1024");

jetzt möchte ich mit javacript eine ausgabe machen, sobald die auflösung des besuchers mit einer dieser im php array übereinstimmt. bis dato bin ich so weit:

PHP:
<script type="text/javascript">
var user_resolution = window.screen.width+"x"+window.screen.height; 
</script>


<?php 
$res = array("800x600", "1024x768", "1280x1024");
for ($i=0; $i<count($res); $i++) {
$resolution = $res[$i];
?>

<script type="text/javascript">
var arrayresolution = "<?=$resolution?>";
if (user_resolution == arrayresolution)
    { 
	document.write("user_resolution ist im php array vorhanden -> ausgabe code ja");
    }
else {
	document.write("user_resolution ist nicht enthalten -> ausgabe code nein");
       }
</script>

<?php } ?>

im moment hab ich mit diesem code eine dreifache ausgabe. mir ist natürlich klar warum! :-)
aber ich komm einfach nicht drauf wie ich das umbasteln muss damit eine einzige ausgabe erfolgt? entweder "auflösung vorhanden" oder "auflösung nicht enthalten".

bin dankbar für jeden tipp!!
danke, mario
 
Hallo Mario

Entweder du machst dies mit einem OR in der IF Bedingung oder du setzt eine Variable TRUE, wenn eine Resolution gefunden wurde und prüfst NACH dem durchlauf der Schleife ob der WERT True ist.
Falls der Wert nicht true ist, dann weißt du, dass die Ausflösung nicht gefunden wurde.

Das setzen der Variable array_resolution ist meiner Meinung nach sinnlose, da du den Wert ja auch gleich mit PHP einsetzen kannst, wenn du ihn wirklich nur in der IF Bedingung brauchst, dann halt mit "" ;)

Gruß Simon
 
hallo simon,
ich danke dir für deinen tip. hab versucht eine variable auf TRUE zu setzen und bin dabei draufgekommen dass ich vergessen habe zu erwähnen, dass sich dieser ganze code bereits in einer php schleife befindet, und mehrmals pro seite ausgeführt wird. dann wird das mit dem "variable auf TRUE setzen" nicht funktionieren oder bzw. wirds wohl komplizierter werden (für mich zumindest).

jedenfalls hab ich jetzt eine tolle "in_array" function für javascript gefunden, die machts so wies sein soll, und zwar so:

HTML:
<script type="text/javascript">
var user_resolution = window.screen.width+"x"+window.screen.height;  

Array.prototype.in_array = function ( obj ) {
	var len = this.length;
	for ( var x = 0 ; x <= len ; x++ ) {
		if ( this[x] == obj ) return true;
	}
	return false;
}

res = new Array("800x600", "1024x768", "1280x1024");
if (numbers.toString().indexOf(user_resolution)!==-1)
    { 
	document.write("user_resolution im array vorhanden");
	}

else {
	document.write("user_resolution nicht im array vorhanden");
       }
</script>

danke & lg
mario
 
Zurück