on|off) x=(-?\d*)..(-?\d*),y=(-?\d*)..(-?\d*),z=(-?\d*)..(-?\d*)#', $line, $found); for ($x = (int)$found[2]; $x <= (int)$found[3]; $x++) { for ($y = (int)$found[4]; $y <= (int)$found[5]; $y++) { for ($z = (int)$found[6]; $z <= (int)$found[7]; $z++) { unset($array[$x . '|' . $y . '|' . $z]); if ($found['status'] == 'on') { $array[$x . '|' . $y . '|' . $z] = 1; } } } } } echo count($array); //644257