JSFiddle - React, Tailwind, and code Playground

JavaScript

// [0][0], [1][0], [1][1], [2][0], [2][1], [2][2], … 
for($i=0; $i<count($n_arr); $i++)
{
	for($k=0; $k<$rowlimit; $k++)
	{
		if($laufer<count($n_arr))
		{
			$fieldvalue = $n_arr[$laufer];
			// if not a number then empty
			if(!preg_match('/\\d/', $fieldvalue))
			{
				$fieldvalue = null;
			}
			$multi[$i][$k] = $fieldvalue;
			$laufer++;
		}
	}
	$rowlimit++;
}

// remember the array fields holding the solutions
$solutionids = [];

// var_dump($multi);
$linecount = count($multi);

// all fields we need with values
$valuefields_needed = $linecount*($linecount + 1) / 2;

// non empty fields
$valuefields_count = 0;

while($valuefields_count < $valuefields_needed)
{
	$valuefields_count = 0;
	for($i=0; $i<$linecount; $i++)
	{
		$valuefields_count += count( array_filter($multi[$i]) );
	}
	
	// var_dump($valuefields_count.' / '.$valuefields_needed);
	
	// now comes the tough part, go over multiarray and find the fields for possible additions
	for($i=0; $i<$linecount-1; $i++)
	{
		// go along fields in line 
		for($k=0; $k<=$i; $k++)
		{
			// check tripel that there are two values set
			if( count($multi[$i][$k]) + count($multi[$i+1][$k]) + count($multi[$i+1][$k+1]) == 2 )
			{
				// var_dump('calculatable: ' $i.' | '.$k);
				if(count($multi[$i][$k]) + count($multi[$i+1][$k]) == 2)
				{
					// set value x = x + N
					// $multi[$i+1][$k+1] = $multi[$i][$k].' - '.$multi[$i+1][$k];
					$multi[$i+1][$k+1] = math_fractions_addsub($multi[$i][$k], $multi[$i+1][$k], '-');
					// var_dump('A: '.$multi[$i+1][$k+1]);
					
					// remember index of solution for single array from [$i+1][$k+1] 
					$fieldcount_prev = ($i+1) * ($i+1+1) / 2;
					
					$solutionids[] = $fieldcount_prev + $k+1;
				}
				else if(count($multi[$i][$k]) + count($multi[$i+1][$k+1]) == 2)
				{
					// set value x = N + x
					// $multi[$i+1][$k] = $multi[$i][$k].' - '.$multi[$i+1][$k+1];
					$multi[$i+1][$k] = math_fractions_addsub($multi[$i][$k], $multi[$i+1][$k+1], '-');
					// var_dump('B:...