2 Dimensionales Array Filtern
Stefan Schälle
- php
Wie kann ich aus diesem Array $test[x][y] alle Elemente mit dem gleichen x Wert herausfiltern??? array_filter() hab ich wohl nicht ganz verstanden.
Sollte möglichst schnell sein, da es nachher das Wichtigste Gild in einer Realtimeapplikation sein sollte, deshalb verwendi ich auch nicht die db.
Besten Fank chon im vorherein.
Gruss Stefan
Hallo Stefan,
Wie kann ich aus diesem Array $test[x][y] alle Elemente mit dem gleichen x Wert herausfiltern??? array_filter() hab ich wohl nicht ganz verstanden.
Mit array_filter() kannst das recht gut lösen, Du brauchst ja lediglich eine Funktion die array_filter verwenden soll. Ich habe da mal einen Lösungsansatz, vielleicht kannst Du darauf aufbauen:
<?php
//Testarray
$array = array (1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 9, 10, 11, 12);
//Konstante für gesuchten Wert
define( "C_FILTER_VALUE", 2 );
//Filterfunktion
function filter( $value )
{
if( $value == C_FILTER_VALUE )
return( $value );
}
//Ausgabe
echo ( "Filter nach Wert " . C_FILTER_VALUE . ":<br>" );
print_r( array_filter($array, "filter") );
?>
Hoffe es hilft Dir weiter,
Gruss AndreD
$text[1] liefert dir doch bereits ein Feld mit den Elementen auf $text[x][y], für die x=1 gilt. Wo ist das Problem?
MfG
GK
$text[1] liefert dir doch bereits ein Feld mit den Elementen auf $text[x][y], für die x=1 gilt. Wo ist das Problem?
MfG
GK
Bei mit hat dann aber foreach($text[1] as $elem) hat nich funktioniert.
Besten Dank
Dann ist $test[1] kein Feld oder das Feld ist leer. Das kannst Du aber vorher mit is_array($test[1]) und count($text[1]) prüfen. Voraussetzung ist natürlich, dass $test überhaupt ein Feld ist. Prüfung wie angegeben.
Eine nützliche Funktion, um sich anzugucken, was in einer Variable drin ist ist übrigens:
function Display(&$var)
{
if (is_array($var))
{
$count = 0;
echo "{";
foreach($var as $key => $value)
{
if (0 < $count)
echo ", $key=>";
else
echo "$key=>";
Display($value);
++$count;
}
echo "}";
}
else if (is_integer($var))
{
echo $var;
}
else if (is_bool($var))
{
echo $var ? "true" : "false";
}
else if (is_null($var))
{
echo "null";
}
else if (is_string($var))
{
echo "'$var'";
}
else if (is_object($var))
{
echo "{class=", get_class($var);
$properties = get_object_vars($var);
Display($properties);
echo "}";
}
else
{
echo $var;
}
}
Wenn obige Lösungen nicht weiterhelfen, poste doch mal die Ausgabe von Display($test) und den nicht funktionierenden Codeabschnitt.
MfG
GK
Moin!
Eine nützliche Funktion, um sich anzugucken, was in einer Variable drin ist ist übrigens:
function Display(&$var)
[ ] Du kennst var_dump() und print_r().
- Sven Rautenberg
[ ] Du kennst var_dump() und print_r().
[x] Ich kenne var_dump() und print_r
[ ] Ich hab' das PHP Handbuch auswendig gelernt
Wegen der Formatierung der Ausgabe benutze ich das nicht und hab' deswegen grad nicht dran gedacht. Danke für die Ergänzung, Du hast natürlich recht.
MfG
GK
Moin!
[x] Ich kenne var_dump() und print_r
[ ] Ich hab' das PHP Handbuch auswendig gelerntWegen der Formatierung der Ausgabe benutze ich das nicht und hab' deswegen grad nicht dran gedacht. Danke für die Ergänzung, Du hast natürlich recht.
Hm, ich habe eigentlich kein Problem mit den eingebauten Funktionen. Man kriegt damit sehr schnell heraus, was in Variablen drinsteht - und wer es gerne formatiert hat, setzt die Ausgabe von var_dump() einfach in einen <pre>-Bereich.
- Sven Rautenberg
Merci für eutre Tips.
Leider wäre ich schon auf dem richtigen Weg gewesen, jedoch hatte das Array doch echt keine Werte drin.
Gruss Stefan
------------------------------------------------
check out: EXTRA AWARDS:
FOR THE BEST DJ, BAND AND DANCE-GROUP http://www.extraawards.ch
------------------------------------------------