Mehrdimensionales Array durchsuchen

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Benutzeravatar
bce
Beiträge: 858
Registriert: Do 14.Okt, 2004 18:46
Kontaktdaten:

Mehrdimensionales Array durchsuchen

Beitrag von bce »

habe folgendes mehrdimanesionales array:

Code: Alles auswählen

Array
(
    [0] => Array
        (
            [image_name] => datei1
            [image_filename] => 45f1ddd2b62831b2695e09cf445e1f19.jpg
            [image_name_clean] => datei1
        )

    [1] => Array
        (
            [image_name] => datei2
            [image_filename] => f43fafa8a887a6a20873025932b1324d.jpg
            [image_name_clean] => datei2
        )

    [2] => Array
        (
            [image_name] => datei1
            [image_filename] => cfa484892303b1b6cfb629aac2a597a3.jpg
            [image_name_clean] => datei1
        )
)
wie kann ich prüfen ob [image_name] doppelt vorhanden ist?
in diesem beispiel wäre ja datei1 doppelt.

habe es mit in_array probiert aber nicht hinbekommen.

Code: Alles auswählen

for ($i=0; $i<sizeof($c_images); $i++) {
	if (in_array($c_images[$i][image_name], $c_images)) 
		{echo " drin"; } else { echo " nicht drin"; }
}
kann man das überhaupt mit in_arrray lösen?
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Mehrdimensionales Array durchsuchen

Beitrag von oxpus »

Wenn du aus

Code: Alles auswählen

$array['image_name']
ein neues Array erstellst, wäre das einfacher.
Also

Code: Alles auswählen

$array_2 = $array['image_name'];
Dann könnte man mit

Code: Alles auswählen

if ($in_array($array['image_name'], $array2))
genau prüfen, ob der Inhalt doppelt ist.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
bce
Beiträge: 858
Registriert: Do 14.Okt, 2004 18:46
Kontaktdaten:

Re: Mehrdimensionales Array durchsuchen

Beitrag von bce »

danke für die geistige anregung..

habs nun wie folgt gelöst:

Code: Alles auswählen

$datei_name = array();

for ($i=0; $i<sizeof($c_images); $i++) {
	array_push($datei_name, $c_images[$i][image_name]);
}

$datei_name_tmp = $datei_name;

//doppelte dateinamen vermeiden - bei gleichen dateinamen unterstrich und zähler anhängen
for ($i=0; $i<sizeof($datei_name); $i++) {
	$tmp = $c_images[$i]['image_name_clean'];

	array_shift($datei_name_tmp);//erstes elemetn entfernen, damit wert sich nicht selbst findet

	if (in_array($tmp, $datei_name_tmp)) {
		$datei_name[$i] .= "_". ++$z; 
	} 
}//for
unlink($datei_name_tmp);
:cool:
Antworten