Mehrdimensionales Array mit PHP auslesen um es in eine MySql DB zu schreiben
Hallo Leute,
eventuell kann mir jemand hier auf die Sprünge helfen damit.
Ich habe ein Mehrdimensionales Array namens $tree
Es wird wie folgt befüllt:
funktioniert auch alles wie gewünscht!
Das Ergebnis ist dann:
Dieses Array würde ich gerne per PHP in eine MySql DB verarbeiten, ich steige aber gerade nicht durch wie ich es in folgende Form bekommen kann:
Spalte Ordner | Spalte Dateiname
sozusagen so lange [name] aus 1. Array, wie es Einträge mit [name] in 2. Array gibt.
Eventuell erbarmt sich ja jemand und hilft mir auf die Sprünge
Grüße
eventuell kann mir jemand hier auf die Sprünge helfen damit.
Ich habe ein Mehrdimensionales Array namens $tree
Es wird wie folgt befüllt:
<?PHP
$tree=array();
function getDirectory( $path = '.'){
$ignore = array( 'cgi-bin', '.', '..' );
$dh = @opendir( $path );
$j=0;
$temp=array();
while( false !== ( $file = readdir( $dh ) ) ){
if( !in_array( $file, $ignore ) ){
$temp[$j]['name']=$file;
if( is_dir( "$path/$file" ) ){
$temp[$j]['children']=getDirectory( "$path/$file");
}
}
$j++;
}
return $temp;
closedir( $dh );
}
$tree=getDirectory("/var/www/html/src/drive/");
$type='desc';
//recursive function for sorting arrays
function getSort(&$temp) {
global $type;
switch ($type) {
case 'desc':
rsort($temp);
break;
case 'asc':
sort($temp);
break;
}
foreach($temp as &$t) {
if(is_array($t['children']))
getSort($t['children']);
}
} //end of function
getSort($tree);
?>
funktioniert auch alles wie gewünscht!
Das Ergebnis ist dann:
Array
(
=> Array
(
[name] => dir_name
[children] => Array
(
=> Array
(
[name] => filename0.pdf
)
[1] => Array
(
[name] => filename1.pdf
)
[2] => Array
(
[name] => filename2.pdf
)
[3] => Array
(
[name] => filename3.pdf
)
[4] => Array
(
[name] => filename4.pdf
)
[5] => Array
(
[name] => filename5.pdf
)
[6] => Array
(
[name] => filename6.pdf
)
[7] => Array
(
[name] => filename7.pdf
)
[8] => Array
(
[name] => filename8.pdf
)
)
)
[1] => Array
(
[name] => dir_name2
[children] => Array
(
=> Array
(
[name] => filenamexy.pdf
)
[1] => Array
(
[name] => filenamexyz.pdf
)
[2] => Array
(
[name] => filenamyejk.pdf
)
[3] => Array
(
[name] => kasdjfjkaskdljö.pdf
)
)
)
....... usw.
Dieses Array würde ich gerne per PHP in eine MySql DB verarbeiten, ich steige aber gerade nicht durch wie ich es in folgende Form bekommen kann:
Spalte Ordner | Spalte Dateiname
sozusagen so lange [name] aus 1. Array, wie es Einträge mit [name] in 2. Array gibt.
Eventuell erbarmt sich ja jemand und hilft mir auf die Sprünge
Grüße
Please also mark the comments that contributed to the solution of the article
Content-Key: 314613
Url: https://administrator.de/contentid/314613
Printed on: April 25, 2024 at 12:04 o'clock
2 Comments
Latest comment
Hi, you can do this with two nested foreach loops, the outer to iterate over your directory names and the inner loops over the children(the files) for each directory. Inside the inner loop you create the insert into statement for your database and you are finished.
Like this:
Regards
Like this:
foreach ($tree as $dir){
foreach($dir['children'] as $file){
// here you can access the file name with $file['name'] and the corresponding directory for the file with $dir['name']
// create your insert into statement here
}
}
Regards