fork download
  1. <?php
  2.  
  3. // your code goes here
  4. $arr = array( '1' => array('0','0','0','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '1'),
  5. '2' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '1'),
  6. '3' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '1'),
  7. '4' => array('1','0','1','1', '1', '1','0', '0', '0', '0','1','1','1', '1', '1','1', '1', '1', '1'),
  8. '5' => array('1','1','1','1', '1', '1','0', '0', '0', '0','1','1','1', '1', '1','1', '1', '1', '1'),
  9. '6' => array('1','1','1','1', '1', '1','0', '0', '0', '0','1','1','1', '1', '1','1', '1', '1', '1'),
  10. '7' => array('1','1','1','1', '1', '1','0', '0', '0', '0','1','1','1', '1', '1','1', '1', '1', '1'),
  11. '8' => array('1','1','1','1', '1', '1','0', '0', '0', '0','1','1','1', '1', '1','1', '1', '1', '1'),
  12. '9' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '1'),
  13. '10' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '0', '1'),
  14. '11' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '1'));
  15.  
  16. echo '<pre>';
  17. echo "Before:\n\n";
  18. echo implode(
  19. "\n",
  20. function ($a) { return implode('', $a); },
  21. $arr
  22. )
  23. );
  24.  
  25. foreach ($arr as $i => &$a) {
  26. foreach ($a as $j => $v) {
  27. if ($v !== '0') {
  28. continue;
  29. }
  30.  
  31. if (!array_key_exists($i-1, $arr) || $arr[$i-1][$j] !== '0'|| $arr[$i-1][$j] == 'X') {
  32. continue;
  33. }
  34.  
  35. if (!array_key_exists($j+1, $a) || $a[$j+1] !== '0'|| $a[$j+1] == 'X') {
  36. continue;
  37. }
  38.  
  39. if (!array_key_exists($i+1, $arr) || $arr[$i+1][$j] !== '0'|| $arr[$i+1][$j] == 'X') {
  40. continue;
  41. }
  42.  
  43. if (!array_key_exists($j-1, $a) || $a[$j-1] !== '0'|| $a[$j-1] == 'X') {
  44. continue;
  45. }
  46.  
  47. $arr[$i][$j] = 'X';
  48. }
  49. }
  50. unset($a);
  51.  
  52. echo
  53. "\n\nAfter:\n\n",
  54. "\n",
  55. function ($a) { return implode('', $a); },
  56. $arr
  57. )
  58. );
Success #stdin #stdout 0.02s 24576KB
stdin
Standard input is empty
stdout
<pre>Before:

0001111111111111111
1111111111111111111
1111111111111111111
1011110000111111111
1111110000111111111
1111110000111111111
1111110000111111111
1111110000111111111
1111111111111111111
1111111111111111101
1111111111111111111

After:

0001111111111111111
1111111111111111111
1111111111111111111
1011110000111111111
1111110X00111111111
11111100X0111111111
1111110X00111111111
1111110000111111111
1111111111111111111
1111111111111111101
1111111111111111111