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

01010
10111
01010
00100

After:

01010
1X111
01X10
00100