Jump to content

Recursion Question


kellan4459

Recommended Posts

I am trying to work through an array of people links and return a certain person based on some comparisons.

 

This is a multidimensional array with some levels having more links than others

 

so you could have

 

it would look more like a tree structure.

 

I have a function

 


public function handlelinkL1Links($linkLinksArray)
{

	foreach($linkLinksArray as $key=>$value)
	{




			if(array_search($key,$this->linkProcessed)===false && $this->compareKey($key)==true)
			{
				$linkToAdd = $key;
			}	

	$this->handlelinkL1Links($value);
	}
	return $linkToAdd;

}

 

 

No matter how I have defined linkToAdd it is always null.  How can I do this without it being global?

Link to comment
https://forums.phpfreaks.com/topic/255501-recursion-question/
Share on other sites

Try something more like

foreach ($array as $key => $value) {
    if ($value is an array) {
        $return = recursive search on $value;
        if ($return means that the search found the value) return $return;
    } else if ($value matches the search value) {
        return whatever you want;
    }
}

Link to comment
https://forums.phpfreaks.com/topic/255501-recursion-question/#findComment-1309982
Share on other sites

I realized I had a flaw when I looked at your response.  I want know the return value without touching all items.

 

If I have the following

1->4->16

      4->32

200->40

450->209

      ->274->316

                ->490

 

I need to check if the current id is linked to one that has already been added and if so is it the first entered for the current session by date

I am thinking I will need to pass a variable to the function to old the value as I recurse through

Link to comment
https://forums.phpfreaks.com/topic/255501-recursion-question/#findComment-1310017
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.