Hallo,
ich hab ein großes Array, dass ich ein wenig anders sortieren muss. Im großen und ganzen mache ich gerade das hier:
echo "<div style='border:thin solid black;width:90%;margin-left:auto;margin-right:auto;'>";
if(is_array($Array)) {
foreach($Array as $Key => $Value) {
// For every element in the Array
if(is_array($Value)) {
// If the successor Element also is an array which contains additional data
if($Key != "attributes") {
// Attributes didn't exist, continue normally
if($Key != "value") {
$this->Convert($Value,$Key);
}
else {
$Test[$Context] = $Value;
$this->Convert($Value,$Context);
}
}
else {
}
}
else {
// The Element is just a simple value
array_push($this->Data,"$Context|$Key|$Value");
}
}
}
else {
// Simple Value, not an Array which contains several values
array_push($this->Data,"$Context|$Array");
}
echo '</div><br>';
Das Array, dass ich zu "Konvertieren" habe, ist ungefähr so aufgebaut:
[0] => "test"
[1] => Array => Array => "test"
=> "test"
=> Array => "test"
=> "test"
=> "test"
=> "test"
[2] => "test"
Ist nur ein kleiner Ausschnitt, geht teilweise bis zu einem 10d Array runter... Mein Problem ist, ich gehe jedes Array durch mit $Key => $Value und greife dann darüber darauf zu. Also $Value ist entweder ein normaler String hier immer Test, oder ein weiteres Array für das ich die Funktion neustarte. Mein Problem ist: Wenn $Value ein weiteres Array ist, kommt es MANCHMAL vor, dass dieses Array aus 2 Arrays nämlich "attributes" und "value" besteht, von denen ich nur das "value" attribut weiterverwenden möchte. Das heißt, wenn $Value ein Array ist, soll er nur $Value['value'] weitergeben und damit die Funktion neustarten, aber bitteschön $Value['attribute'] in Ruhe lassen! Wie kriege ich das hin? $Key != "attributes" funktioniert ja nicht, weil $Key ja gar nicht der Key von den einzelnen Teilen innerhalb des $Value-Arrays ist. Sowas wie if(isset($Value["attributes")) hat bei mir irgendwie auch nicht funktioniert. Was kann ich da bitte machen? Ich hoffe ich hab mein Problem ausreichen beschrieben.