Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „mehrdimensionales array nur ein Feld auslesen“

rey

Der Frager ;)

Hi,
ich habe ein mehrdimensionales array
die verstachtlungstiefe ist n
Array
(
[0] => Array
(
[0] => Array
(
[0] => 2
[uid] => 2
[1] => DTEST
[title] => DTEST
[2] => 0
[parent_group] => 0
[children] => Array
(
[0] => Array
(
[0] => 4
[uid] => 4
[1] => DTEST
[title] => DTEST
[2] => 2
[parent_group] => 2
[children] => Array
(
[0] => Array
(
[0] => 5
[uid] => 5
[1] => StdTEST
[title] => StdTEST
[2] => 4
[parent_group] => 4
[children] => Array
(
[0] => Array
(
[0] => 6
[uid] => 6
[1] => NTEST
[title] => NTEST
[2] => 5
[parent_group] => 5
[children] => Array
(
)

)

)

)

)

)

[1] => Array
(
[0] => 7
[uid] => 7
[1] => TTEST
[title] => TTEST
[2] => 2
[parent_group] => 2
[children] => Array
(
[0] => Array
(
[0] => 8
[uid] => 8
[1] => Test123
[title] => Test123
[2] => 7
[parent_group] => 7
[children] => Array
(
[0] => Array
(
[0] => 9
[uid] => 9
[1] => test4325
[title] => test4325
[2] => 8
[parent_group] => 8
[children] => Array
(
[0] => Array
(
[0] => 10
[uid] => 10
[1] => blubb
[title] => blubb
[2] => 9
[parent_group] => 9
[children] => Array
(
)

)

)

)

)

)

)

)

)

)

)

[1] => Array
(
[0] => Array
(
[0] => 1
[uid] => 1
[1] => PTEST
[title] => PTEST
[2] => 0
[parent_group] => 0
[children] => Array
(
)

)

)

)
nun möchte ich überall das feld uid auslesen und in ein array speichern also so
[0]=>2
[1]=>4
.
.
.
.
ich habe array_search mit einer foreach schleufe versucht aber da bekomme ich nichts raus
und über count (arrayname) bekomme ich immer die anzahl 2 aber so ignoriert er ja die gesamt anzahl der elemente innerhalb des arrays
array_count_values bingt auch nur eine 2
Die andere sache ist, es kann sein das wenn eine variable $ebene = 2 ist.
Dann soll er nur die felder bis 2 ebenen im array nehmen und nicht noch die weiteren werte aus der Verschachtlung.
Jemand eine Idee?
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: mehrdimensionales array nur ein Feld auslesen

Ein Baum - und so sieht deine Datenstruktur auf den ersten Blick aus - wird i.d.R. rekursiv durchlaufen. Es gibt zwar ein array_walk_recursive(), aber das hat keine Maximaltiefe o.ä.

Du benötigst eine Funktion, die bis maximal Tiefe N arbeitet und in jedem Rekursionsschritt N dekrementiert. Falls du C lesen kannst, ist beispielsweise hier eine Seite,, die sich mit dem Durchlaufen von Bäumen befasst.


Duddle
 
M

Metty_D

Guest

AW: mehrdimensionales array nur ein Feld auslesen

Versuche es mal hiermit:

Code:
$retArray = Array();

function getKey($arr,$searchParam){
    global $retArray;
    
    for ($i=0;$i<count($arr);$i++){
        if(array_key_exists($searchParam, $arr[$i])){
            $retArray[] = $arr[$i][$searchParam];
        }
        
        if (array_key_exists('children', $arr[$i])){
            getKey($arr[$i]['children'], $searchParam);
        } else {
            if (is_array($arr[$i])){
                getKey($arr[$i], $searchParam);
            }
        }
    }
}
getKey($deinArray,'uid');

print_r($retArray);
ist es das was du meinst ?
 
M

Metty_D

Guest

AW: mehrdimensionales array nur ein Feld auslesen

achso, einen Zähler für die Maximale verschachtelung musst du dir noch selber einbauen :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.078
Mitglieder
67.258
Neuestes Mitglied
SaschMasch1312
Oben