# Multidimensionales Array in ein eindimensionales konvertieren



## lerel (15. Juli 2009)

Hallo,

ich habe ein problem und zwar habe ich mir gerade eine Navigation geschrieben, die man bis ins unendliche von der Tiefe her erweitern kann, damit das ganze Aus- und Einklappbar ist, habe ich mir so überlegt, das ich mir ein Array schreibe, dass von der letzten Ebene rekursiv aus überprüft ob die Elemente alle enthalten sind -> Überprüfung via in_array()

Für das in_array() brauche ich ein eindimensionales Array, allerdings bekomme ich über meine Rekursion gewzungenermaßen ein mehrdimensionales Array, Problem ist jetzt, wie kriege ich es hin das das mehrdimensionale zu einem eindimensionalen wird?!

Das ist der print_r() des mehrdimensionalen Arrays:


```
Array
(
    [0] => 17
    [1] => Array
        (
            [0] => 16
            [1] => Array
                (
                    [0] => 15
                    [1] => Array
                        (
                            [0] => 12
                        )

                )

        )

)
```

Ich dank euch jetz schon und hoffe das ihr mir helfen könnt


----------



## Flex (15. Juli 2009)

```
<?php
function in_multi_array($needle, $haystack)
{
    $in_multi_array = false;
    if(in_array($needle, $haystack))
    {
        $in_multi_array = true;
    }
    else
    {   
        for($i = 0; $i < sizeof($haystack); $i++)
        {
            if(is_array($haystack[$i]))
            {
                if(in_multi_array($needle, $haystack[$i]))
                {
                    $in_multi_array = true;
                    break;
                }
            }
        }
    }
    return $in_multi_array;
}
?>
```

in_array() Kommentar #20594


----------



## lerel (15. Juli 2009)

Haha geil, stand ich gerade auf dem Schlauch, die Funktion hat ich sogar schon im Script mit drinnen 

Ich dank dir!


----------



## ZodiacXP (15. Juli 2009)

Verstehe ich nicht. Du arbeitest mit Rekursion und willst trotzdem ohne Rekursion arbeiten? Das prüfen bietet sich dann doch an:


```
function array_search_recursive($needle, $haystack)
{
  foreach ($haystack as $a)
  {
    if (is_array($a))
    {
      return array_search_recursive($neelde, $a);
    }
    else if ($needle == $a)
    {
      return true;
    }
  }
  return false;
}
```

Hoffe das funktioniert.


----------

