Einzelnen Beitrag anzeigen
  #1  
Alt 27.07.2009, 00:50:45
dercheffe dercheffe ist offline
Anfänger
 
Registriert seit: Jan 2004
Beiträge: 9
Mehrdimensionales Array mit foreach-Konstrukt und in_array durchsuchen klappt nicht

Hallo,

folgender Code sollte überprüfen, ob ein Suchbegriff in einem mehrdimensionalem Array vorhanden ist.

Leider passt das Tutorial von http://tut.php-q.net/recursion.html#u3 nicht ganz auf meine Bedürfnisse.

Hier mein Code:
Zuerst der Array. In meinem Fall hat er 2 Dimensionen:

PHP-Code:


$vorlage 
= array();

    
$vorlage[0]['id'] = (int)0;
    
$vorlage[0]['datei'] = (string)'startseite';

    
$vorlage[1]['id'] = (int)1;
    
$vorlage[1]['datei'] = (string)'inhalt_detail';

    
$vorlage[2]['id'] = (int)2;
    
$vorlage[2]['datei'] = (string)'inhalt_liste'
Hier die Funktion:
PHP-Code:
function search_multi_array($suchbegriff$multiarray)
{
    foreach(
$multiarray as $key=>$values)
    {
        if(
is_array($values))
        {
            if(
in_array($suchbegriff,$values))
            {
                
$ergebnis 1;
            }

            else
            {
                
$ergebnis 0;
            }

        }

        else
        {
            
$ergebnis = (string)'Ergebnis ist kein Array';
        }
    }

    return 
$ergebnis;

1. Problem: Wenn die Funktion mit...
PHP-Code:
$x search_multi_array('startseite'$vorlage);
echo 
$x
...ausgeführt wird, bekomme ich immer 0 zurück.

2. Problem: Wenn ich die Ergebniswerte innerhalb der Funktion explizit als bool (per typecast) deklariere, bekomme ich gar kein Ergebnis zurück?

Kann mir jemand sagen, wo ich bei meinen Problemen einen Denkfehler habe?

THX schon mal im Voraus,

Phil

Geändert von dercheffe (27.07.2009 um 00:55:18 Uhr)
Mit Zitat antworten