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

0001111111111111111
1111111111111111111
1111111111111111111
1011110000111111111
1111110000111111111
1111110000111111111
1111110000111111111
1111110000111111111
1111111111111111111
1111111111111111101
1111111111111111111

After:

0001111111111111111
1111111111111111111
1111111111111111111
1011110000111111111
1111110000111111111
1111110000111111111
1111110000111111111
1111110000111111111
1111111111111111111
1111111111111111101
1111111111111111111