[ create a new paste ] login | about

Link: http://codepad.org/MFMWx08M    [ raw code | output | fork ]

PHP, pasted on Feb 11:
<?php

function incrementPath(&$array, $path) {
			if (is_string($path)) {
				$path = explode('-', str_replace('E', '', $path));
			}else{
				echo "Path is not valid";
			}
			
			$tmp =& $array;
			foreach ($path as $subpath) {
				if (is_array($tmp) && isset($tmp[$subpath])) {
					$tmp =& $tmp[$subpath];
				} else {
					$tmp[$subpath] = array(1);
					$tmp =& $tmp[$subpath];
				}
			}
			$tmp++;
			return true;
		}
		
		//$projectNumber = $_GET['project_number'];
		$parentNumber = 'E3-1';
		
		$eNumbers = array(
								1=>array(
									1=>array(
										1=>null
									),
									2=>array(
										1=>null, 2=>null, 3=>null
									)
								),
								2=>array(
									1=>array(
										1=>null, 2=>null, 3=>null, 4=>null
									)
								),
								3=>array(
									1=>array(
										1=>null, 2=>null
									),
									2=>null,
									3=>array(
										1=>null
									),
									4=>null
								),
							);
echo "Starting Array:\n";
print_r($eNumbers);
echo "Input string: ", $parentNumber,"\n";

		if (!is_array($eNumbers)&&!isset($parentNumber)){
			$eNumbers[1] = null; //cant possibly have children so null for now
			$nextENumber =  'E1';
		}else{
			if (!isset($parentNumber)){
				$nextNumber = count($eNumbers)+1;
				$eNumbers[$nextNumber] = null; //cant possibly have children so null for now
				$nextENumber = 'E'.$nextNumber;
			}else{
				// $parentIndex = explode('-', str_replace('E', '', $parentNumber));
				//$nextENumber = //assign $nextENumber the incremented e number
				if (!incrementPath($eNumbers, $parentNumber)){
					echo "Path not found";
				}
			}
		}
		
		echo $nextENumber;
echo "Resulting Array: \n";
print_r($eNumbers);
?>


Output:
Starting Array:
Array
(
    [1] => Array
        (
            [1] => Array
                (
                    [1] => 
                )

            [2] => Array
                (
                    [1] => 
                    [2] => 
                    [3] => 
                )

        )

    [2] => Array
        (
            [1] => Array
                (
                    [1] => 
                    [2] => 
                    [3] => 
                    [4] => 
                )

        )

    [3] => Array
        (
            [1] => Array
                (
                    [1] => 
                    [2] => 
                )

            [2] => 
            [3] => Array
                (
                    [1] => 
                )

            [4] => 
        )

)
Input string: E3-1
Resulting Array: 
Array
(
    [1] => Array
        (
            [1] => Array
                (
                    [1] => 
                )

            [2] => Array
                (
                    [1] => 
                    [2] => 
                    [3] => 
                )

        )

    [2] => Array
        (
            [1] => Array
                (
                    [1] => 
                    [2] => 
                    [3] => 
                    [4] => 
                )

        )

    [3] => Array
        (
            [1] => Array
                (
                    [1] => 
                    [2] => 
                )

            [2] => 
            [3] => Array
                (
                    [1] => 
                )

            [4] => 
        )

)


Create a new paste based on this one


Comments: