2016-11-04 4 views
1

У меня есть массив со всеми категориями, хранящихся в нем:функция PHP возвращает нулевое значение вместо строки

$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' 
         ) 

Мне нужно обнаружить высшую категорию в иерархии, когда у меня есть идентификатор низшей категории в иерархии. Поэтому у меня есть эта функция:

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; 
    } 
} 

я получаю проблемы при попытке использовать эту функцию:

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

Любые идеи?

+1

Вы не возвращаете основную категорию U получено из findMainCategoryFromAllCatArray ($ pid, $ allCatArray); – coder

ответ

4

заменить это:

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

с

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

, потому что, когда $pid != "0" на старте, функция возврата ничего -> Ваше NULL значение

+0

Он работает! Большое спасибо :) –