• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

problem mit meinem Mehrdimensionalen array

Mars@Gera

Mitglied
Mahlzeit ... ich habe folgende Situation
ich habe 2 arrays ... dort werden einmal die Namen aller txt-Dateien gespeichert und einmal aller Bilder --> funktioniert
Nun will ich, das ein mehrdimensionales array erstellt wird von der jeweiligen textdatei zu dessen bilddatei
like
HTML:
text1 => pic1
text2 => NULL
text3 => pic3
wie gerade gesehen, besteht die möglichkeit auch, das kein Bild vorhanden sein muss, dies aber trotzdem in das array hineinsoll
hier nun mein Code
PHP:
// hier die 2 arrays ... bilder und texte
if(in_array("@", $files)){
	$files = array();
	$pics = array();
	$handle = opendir(".\book\@");
	while($file = readdir($handle)){
		if($file !== '.' && $file !== '..' && !is_dir($file)){
			// pics in a sep array
			if(substr($file, -3, 3) == "jpg"){
				$pics[] = $file;
			}else{
				$files[] = $file;
			}
		}
	}
}
nun mein Code zum erstellen des mehrdimensionalen arrays
PHP:
$stuff = array();
$i = 0;
foreach($pics as $pic){
	$pic_name = substr($pic, 0, -4);
	if(($idx = array_keys($files, $pic_name . ".txt")) && in_array($pic_name . ".txt", $files)){
 	           $stuff[][0] = $files[$idx[0]];
		$stuff[][1] = $pic;
	}else{
		$stuff[][0] = $files[$idx[0]];
		$stuff[][1] = NULL;
	}
}
Nun werden leider nur die Dateien und Bilder ins array gespeichert, wovon beide Dateien enthalten sind
kann mir da jemand helfen?

Ich hoffe, ich konnte mein problem bissl verständlich schildern

Danke Marcel

Edith sagt:
habe mal bissl umgearbeitet und funktioniert schon eher ... aber nciht komplett ... vielleicht kann trotzdem mir jemand helfen
PHP:
				for($i = 0; $i < count($files); $i++){
					foreach($pics as $pic){
						$pic_name = substr($pic, 0, -4);
						if(strcmp($pic_name . ".txt", $files[$i]) == 0){
							$stuff[$j][0] = array($files[$i] => $pic);
						}
						if($i == count($files) - 1){
							$stuff[$j][0] = array($pic_name . ".txt" => NULL);
						}
					}
					$j++;
				}
 
Zuletzt bearbeitet:
Werbung:
Verständnisfrage:

PHP:
<?php

// Du hast zwei Arrays, ...

$pics = array(
    'pic1.jpg',
    'pic2.jpg'
);

$files = array(
    'text1.txt',
    'text2.txt',
    'text3.txt'
);



// ... die zu diesem zusammengefügt werden sollen?

$result = array(
    'text1' => 'pic1',
    'text2' => 'pic2',
    'text3' => null
);
 
So ähnlich .. man könnte zwar array_merge() nehmen, jedoch sind diese nciht chronologisch in der selben reihenfolge ... man kann diese nur anhand des Namens zusammenfügen, das immer das Bild zum Text den selben titel hat ;) u know?
 
Werbung:
PHP:
<?php

$pics = array(
    'foo.jpg',
    'bar.jpg'
);

$files = array(
    'test.txt',
    'bar.txt',
    'foo.txt'
);



$result = array();

foreach ($files as $file) {
    $fileName = pathinfo($file, PATHINFO_FILENAME);

    if (in_array($fileName . '.jpg', $pics)) {
        $result[$file] = $fileName . '.jpg';
    } else {
        $result[$file] = null;
    }
}

var_dump($result);

Code:
array
  'test.txt' => null
  'bar.txt' => string 'bar.jpg' (length=7)
  'foo.txt' => string 'foo.jpg' (length=7)
 
Zurück
Oben