PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Mehrdimensionales Array mit foreach-Konstrukt und in_array durchsuchen klappt nicht (http://www.selfphp.de/forum/showthread.php?t=21860)

dercheffe 27.07.2009 00:50:45

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

DokuLeseHemmung 27.07.2009 01:19:50

AW: Mehrdimensionales Array mit foreach-Konstrukt und in_array durchsuchen klappt nic
 
Du überschreibst $ergebnis dauernd...
Also bekommst du nur den letzten Wert zurück.


PHP-Code:

function search_multi_array($suchbegriff$multiarray)
{
    foreach(
$multiarray as $key=>$values)
        if(
is_array($values))
            if(
in_array($suchbegriff,$values))
                return 
true;
   return 
false;



cortex 27.07.2009 08:55:52

AW: Mehrdimensionales Array mit foreach-Konstrukt und in_array durchsuchen klappt nic
 
Zitat:

Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken
[mod: verschoben]

cx

dercheffe 29.07.2009 20:36:53

AW: Mehrdimensionales Array mit foreach-Konstrukt und in_array durchsuchen klappt nic
 
Zitat:

Zitat von DokuLeseHemmung (Beitrag 129579)
Du überschreibst $ergebnis dauernd...
Also bekommst du nur den letzten Wert zurück.


PHP-Code:

function search_multi_array($suchbegriff$multiarray)
{
    foreach(
$multiarray as $key=>$values)
        if(
is_array($values))
            if(
in_array($suchbegriff,$values))
                return 
true;
   return 
false;



danke für deine antwort :-) aber ist der code von mir mit deinem nicht äquivalent? weil das problem besteht immer noch, dass ich true als ergebnis bekomme... :-( stehe grade wohl voll auf der leitung...

grüße

DokuLeseHemmung 29.07.2009 20:50:55

AW: Mehrdimensionales Array mit foreach-Konstrukt und in_array durchsuchen klappt nic
 
Strict setzen... !!!??!


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:03:57 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.