Sebastian!: PHP Array

Beitrag lesen

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.