- var_dump: documentation ( source)
- is_numeric: documentation ( source)
- in_array: documentation ( source)
<?php
function getCollectionParentIDFromChildID($cID) {
if(is_numeric($cID)) {
if($cID > 1) {
return '1';
}
if($cID == 1) {
return '0';
}
}
return null;
}
function populateParentIDArray_current($cID) {
global $cParentIDArray;
$cParentID = getCollectionParentIDFromChildID($cID);
if($cParentID > -1) {
if(!in_array($cParentID, $cParentIDArray)) {
$cParentIDArray[] = $cParentID;
}
populateParentIDArray_current($cParentID);
}
}
function populateParentIDArray_new($cID) {
global $cParentIDArray;
$cParentID = getCollectionParentIDFromChildID($cID);
if(is_numeric($cParentID)) {
if(!in_array($cParentID, $cParentIDArray)) {
$cParentIDArray[] = $cParentID;
}
if($cParentID > 0) {
populateParentIDArray_new($cParentID);
}
}
}
function runTest($cID) {
global $cParentIDArray;
echo "Test case for "; var_dump($cID);
$cParentIDArray = array();
populateParentIDArray_current($cID);
echo "CURRENT: \n";
var_dump($cParentIDArray);
$cParentIDArray = array();
populateParentIDArray_new($cID);
echo "CURRENT: \n";
var_dump($cParentIDArray);
}
runTest('3');
runTest('1');
runTest('0');
runTest(3);
runTest(1);
runTest(0);
runTest(null);
runTest('');