PHP assoziatives array als assoziatives array speichern?

lordfritte

Lieutenant
Registriert
Juli 2006
Beiträge
965
Hallo, hat hier jemand eine Idee, welche die einfachste Lösung ist mehrere Kategorien-Pfade als assoziatives array zu speichern?
Als Beispiel:
Eingabe:
14>18>16
14>18>15>100
14>17>14
14>16>13

Ausgabe:
Code:
array(
	14 => array(
		18 => array(
			16,
			15 => array(
				100
			)
		),
		17 => array(
			14
		),
		16 => array(
			13
		)
	)
)
 
So ganz genau habe ich das Problem nicht verstanden. Willst Du das einfach speichern und wieder reproduzieren können? Klingt für mich nach Serialisierung.
 
Code:
<?php

function t( &$array, $parts )
{
	$n = array_shift( $parts );
	if( !isset( $array[$n] ) ) $array[$n] = [];
	if( sizeof( $parts ) > 0 )
		t( $array[$n], $parts );
}

$e = [
	'14>18>16',
	'14>18>15>100',
	'14>17>14',
	'14>16>13'
];

$n = [];

foreach( $e as $i )
{
	t( $n, explode( '>', $i ) );
}

echo '<pre>'.print_r( $n, true );
Code:
Array
(
    [14] => Array
        (
            [18] => Array
                (
                    [16] => Array
                        (
                        )

                    [15] => Array
                        (
                            [100] => Array
                                (
                                )

                        )

                )

            [17] => Array
                (
                    [14] => Array
                        (
                        )

                )

            [16] => Array
                (
                    [13] => Array
                        (
                        )

                )

        )

)
So?
 
@Yuuri genau! Danke.
Achja, da fällt mir gerade auf, dass ich einen fehler im Titel hatte, sorry..
 
Zurück
Oben