Drei Zahlen miteinander vergleichen

Moritz123

Erfahrenes Mitglied
Hallo!

ich möchte gerne prüfen, ob 3 Arrays jeweils gleich viele Elemente haben.
Wie mache ich das am elegantesten?
Ein
PHP:
if(count($arr1) == count($arr2) == count($arr3))
scheint nicht möglich zu sein. Desweiteren würde ich lieber auf false statt auf true prüfen, da ich sonst mit dem restlichen Code tricksen müsste.

Vielen Dank!
 
Hallo!

danke für die Antwort. Es werden nie doppelte Elemente vorkommen. Mit geht es darum, sicherzustellen, das in 3 Arrays jeweils gleich viele Elemente sind. Konkret verhält es sich so, dass im ersten Array der Server, im zweiten der Benutzername und im dritten das Passwort zu einem Email-Konto abgelegt sind. Ich möchte nun prüfen, ob jedes Array gleich viele Elemente hat, um zu verhindern, dass zB ausversehen das falsche Passwort dem falschen Server zugeordnet wird. Ich weiß natürlich, dass dies nicht wirklich sicher ist - mir geht es auch eher um den Lerneffekt.
Vielen Dank trotzdem und: entschuldigt bitte, sollte ich mich unklar ausgedrückt haben.
 
Ja Gumbo meint das kann man auch alles in einem Array machen.

Alternativ:
PHP:
$a = count($arr1);
$b = count($arr2);
$c = count($arr3);

if ($a == $b and $a ==$c and $b==$c)
{
  //code
}

Bei dir muss es so heißen:
PHP:
if (count($arr1) == count($arr2) and count($arr1) == count($arr3) and count($arr2) == count($arr3))
 
Hehe richtig siehste es geht noch einfacher :)

PHP:
$a = count($arr1);
$b = count($arr2);
$c = count($arr3);

if ($a == $b and $a ==$c)
{
  //code
}
 
Hallo!
danke für die Antworten! Ich habe es jetzt so gemacht:
PHP:
if(($server != $user) || ($server != $pass) || ($user != $pass))
 
Auch wenn ich gerade bemerke, dass ich Mist geschrieben habe, ginge es auch mit meinem Vorschlag:
PHP:
count(array_unique(array(count($arr1), count($arr2), count($arr3)))) === 1
Daraus könnte man ja auch kurzerhand eine Funktion machen, damit der Quellcode nicht aufgebläht und unübersichtlich wird:
PHP:
function foobar()
{
	$args = func_get_args();
	$tmp = array();
	foreach( $args => $arg ) {
		if( !is_array($arg) ) {
			return false;
		}
		$tmp[] = count($arg);
	}
	return count(array_unique($tmp)) === 1;
}
Als Parameter kannst du nun beliebig viele Arrays angeben.

Nachtrag: erwähnten Fehler beseitigt.
 
Zurück