2016-11-04 1 views
1

Ich habe einen Array mit allen darin gespeicherten Kategorien:PHP-Funktion gibt null zurück, statt String

$allCatArray = array(
         ['departments/outdoor/123123/'] => stdClass Object 
          (
           [i] => 1 
           [id] => 'departments/outdoor/123123/' 
           [pid] => 'departments/outdoor/' 
           [name] => 'Child Category Name' 
         ) 
         ['departments/outdoor/'] => stdClass Object 
          (
          [i] => 1 
          [id] => 'departments/outdoor/' 
          [pid] => '0' 
          [name] => 'Main Category Name' 
         ) 

ich die höchste Kategorie in der Hierarchie erkennen muß, wenn i id niedrigerer Kategorie in Hierarchie habe. So habe ich diese Funktion:

function findMainCategoryFromAllCatArray($initial_category, $allCatArray) { 
    $pid = trim($allCatArray[$initial_category]->pid); 
    if($pid != "0") { 
    findMainCategoryFromAllCatArray($pid, $allCatArray); 
    } 
    elseif($pid == "0") { 
    var_dump($allCatArray[$initial_category]->name); // this var dump returns normal value 
    return $allCatArray[$initial_category]->name; 
    } 
    else { 
    return false; 
    } 
} 

Ich habe Probleme, wenn ich versuche diese Funktion zu nutzen:

$category_name = findMainCategoryFromAllCatArray('departments/outdoor/123123/', $allCatArray); 
var_dump($category_name); // returns NULL instead of "Main Category Name" 

Irgendwelche Ideen?

+1

Sie sind nicht die Hauptkategorie der Rückkehr u erhalten von findMainCategoryFromAllCatArray ($ pid, $ allCatArray); – coder

Antwort

4

diese ersetzen:

if($pid != "0") { 
    findMainCategoryFromAllCatArray($pid, $allCatArray); 
} 

mit

if($pid != "0") { 
    return findMainCategoryFromAllCatArray($pid, $allCatArray); 
} 

denn wenn $pid != "0" am Start, die Funktion Rückkehr nichts -> Ihr NULL Wert

+0

Es funktioniert! Danke vielmals :) –