Seite 1 von 1
php schubser
Verfasst: 10.01.2006, 15:32
von FuchsT
hallo,
ich brauche einen kleinen schubs in die richtige richtung.
ich hab eine array mit werten gefüllt:
1 rot
2 gelb
3 grün
4 blau
wie kann ich herausfinden an welcher stelle "grün" steht.
(so eine art grep unter unix)
danke
thomas
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
php schubser
Verfasst: 10.01.2006, 16:27
von JR-EWING
da musst du wohl mit ner Schleife drüber und jedes Element vergleichen bzw vielleicht hilft dir das weiter
https://de3.php.net/manual/de/function.array-keys.php
mit eregi kannst du herrausfinden ob es überhaupt drin ist.
php schubser
Verfasst: 10.01.2006, 16:40
von Babelfisch
Eigentlich kann man auf den Namen der gesuchten Funktion sogar ohne die Doku kommen:
array_search()
Ich geb dir als kräftigen Schubser mal noch die
Doku zu den Array-Funktionen mit.

php schubser
Verfasst: 10.01.2006, 17:43
von FuchsT
danke, mt array_search hab ichs schon probiert, dann noch mit preg_match_all, preg_grep, preg_match und vieles andere.
deshalb der schupser. danke.
Re: php schubser
Verfasst: 10.01.2006, 18:02
von Babelfisch
FuchsT hat geschrieben:mt array_search hab ichs schon probiert, dann noch mit preg_match_all, preg_grep, preg_match und vieles andere.
Und? Klingt jetzt fast so, als ob das nicht funktioniert hat.
php schubser
Verfasst: 11.01.2006, 08:27
von FuchsT
ich hab das problem mit array_search nun gefunden.
im array steht zB.
1 gelbblau
2 rotgrüm
ich suche "nur" nach grün. wenn ich nach rotgrün suche, dann gehts. es reicht also nicht, wenn der gesuchte begriff nur enthalten ist. leider.
gibts da ev. eine andere funktion, oder einen schalter für array_search.
danke
thomas
php schubser
Verfasst: 11.01.2006, 14:28
von BLochmann
suchst du sowas? hab den letzten comment nicht ganz verstanden, einfach mal vermutet
$array=array("blau","grün","rot");
$suche="n";
foreach ($array as $key=>$value)
{
if (substr_count($value,$suche)<>0)
$erg=$key;
}
echo "array[$erg] enthält $suche";
php schubser
Verfasst: 11.01.2006, 14:45
von marc75
möchtest du auch einen Treffer bei rotgrün wenn nur nach grün gesucht wird?
php schubser
Verfasst: 11.01.2006, 14:50
von JR-EWING
Will jetzt keinen neuen Topic aufmachen aber witzig ist:
Ich wollte eigentlich FuchsT helfen und hatte nicht gedacht dass ich am nächsten Tag vor einem ähnlichen Problem steh.
Gibt es irgendeine Funktion um leere Arrayelemente aus dem Array zu löschen ? Ist ja fast das gleiche
Gruß JR
php schubser
Verfasst: 11.01.2006, 14:51
von Babelfisch
Du kannst dir dafür doch einfach eine eigen Funktion schreiben. So könnte das bspw. aussehen:
Code: Alles auswählen
function search_array($needle, $haystack) {
for ($i=0; $i < count($haystack); $i++) {
if (strpos($haystack[$i], $needle) !== FALSE) return $i;
}
return FALSE;
}
$farben = array('Farbe rot', 'Farbe gelb', 'Farbe grün', 'Farbe blau');
if (($pos = search_array('grün', $farben)) !== FALSE) {
print('grün an Position ' . $pos);
} else {
print('grün nicht gefunden');
}
Ist jetzt natürlich nur ganz einfach gehalten, sollte aber erst mal funktionieren.
php schubser
Verfasst: 11.01.2006, 15:04
von FuchsT
danke mal an alle.
leider kann ichs jetzt nicht testen. ich werd am montag berichten obs funktioniert.
grüße
thomas
php schubser
Verfasst: 11.01.2006, 20:14
von FuchsT
habs doch noch testen müssen.
die funktion? von Babelfisch ist genau das was ich suche. danke.
hab zwar noch nicht ganz durchschaut was diese funktion genau tut, aber das hat bis montag zeit.
grüße
thomas
Re: php schubser
Verfasst: 11.01.2006, 23:01
von Babelfisch
JR-EWING hat geschrieben:Gibt es irgendeine Funktion um leere Arrayelemente aus dem Array zu löschen ?
Eine passenden Funktion gibt es AFAIK nicht aber auch das ist nicht schwer selbst zu realisieren:
Code: Alles auswählen
function clean_array($haystack) {
foreach($haystack as $key => $value) {
if (empty($value)) unset($haystack[$key]);
}
return $haystack;
}
$farben = array('Farbe rot', 'Farbe gelb', '', 'Farbe grün', '', 'Farbe blau');
print_r(clean_array($farben));
Macht 5 Euro

php schubser
Verfasst: 12.01.2006, 08:59
von marc75
hab zwar noch nicht ganz durchschaut was diese funktion genau tut, aber das hat bis montag zeit.
Sie löscht alles was im rootverzeichnis liegt.
