@ 2016-04-29T11:03:21Z <?php
function isItEnd($array){
return !array_key_exists('ancestors', $array);
}
function getThirdFromEnd($category){
if(!isItEnd($category)){
$away_from_parent = getThirdFromEnd($category['ancestors']['BrowseNode']);
if($away_from_parent == 0){
$away_from_parent = $category['ancestors']['BrowseNode'];
} else {
$away_from_parent--;
}
} else {
$away_from_parent = 2;
}
return $away_from_parent;
}
$category = array(
"BrowseNodeId" => "11256",
"name"=> "Folklore & Mythology",
"ancestors" => array(
"BrowseNode" => array(
"BrowseNodeId" => "11232",
"name"=> "Social Sciences",
"ancestors" => array(
"BrowseNode" => array(
"BrowseNodeId" => "3377866011",
"name"=> "Politics & Social Sciences",
"ancestors" => array(
"BrowseNode" => array(
"BrowseNodeId" => "1000",
"name"=> "Subjects",
"IsCategoryRoot" => true,
"ancestors" => array(
"BrowseNode" => array(
"BrowseNodeId" => "283155",
"name"=> "Books",
),
),
),
),
),
),
),
),
);
$cat = getThirdFromEnd($category);
echo "<pre>" . print_r($cat, 1) . "</pre>";
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 Fatal error: Uncaught TypeError: Cannot decrement array in /in/SeKvM:13
Stack trace:
#0 /in/SeKvM(51): getThirdFromEnd(Array)
#1 {main}
thrown in /in/SeKvM on line 13
Process exited with code 255 . Output for 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 <pre>Array
(
[BrowseNodeId] => 3377866011
[name] => Politics & Social Sciences
[ancestors] => Array
(
[BrowseNode] => Array
(
[BrowseNodeId] => 1000
[name] => Subjects
[IsCategoryRoot] => 1
[ancestors] => Array
(
[BrowseNode] => Array
(
[BrowseNodeId] => 283155
[name] => Books
)
)
)
)
)
</pre> preferences:dark mode live preview
236.78 ms | 404 KiB | 335 Q