Raketenwilli: Warum bleibt mein Array leer?

Beitrag lesen

2022-01-01/foo.sql,
2022-01-01/bar.sql,
2022-02-01/foo.sql,
2022-02-01/bar.sql

Das ist schnödes eindimensionales Array.

Das hab ich jetzt mal verwürfelt übernommen und als Liste von Listen ausgegeben:

<?php
$arr=[
'2022-01-01/foo.sql',
'2022-02-01/bar.sql',
'2022-01-01/bar.sql',
'2022-02-01/foo.sql'
];

sort( $arr );

### Wir brauchen das erste Verzeichnis:
list( $oldDir, $tmp ) = explode( '/', $arr[0] );

echo "
<ol>
	<li>$oldDir
		<ol>";

foreach ( $arr as $item ) {
	list( $dir, $fileName ) = explode( '/', $item );
    if 	( $dir == $oldDir ) {
		echo "
			<li>$fileName</li>";
    } else { ###Verzeichniswechsel
		echo "
		</li>
	 </li>
	 <li>$dir
		<ol>
			<li>$fileName</li>";
		$oldDir = $dir; ### Nicht vergessen 😇
    }
}

echo "
		</ol>
	</li>
</ol>";

Resultat:

<ol>
	<li>2022-01-01
		<ol>
			<li>bar.sql</li>
			<li>foo.sql</li>
		</li>
	 </li>
	 <li>2022-02-01
		<ol>
			<li>bar.sql</li>
			<li>foo.sql</li>
		</ol>
	</li>
</ol>