<?php
// your code goes here
$arr = array( '1' => array('0','0','0','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '0', '0'), '2' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '1', '1'), '3' => array('0','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '0', '0'), '4' => array('1','0','1','1', '1', '1','0', '0', '0', '0', '0', '0', '0', '1', '1','1', '1', '1', '1', '1'), '5' => array('1','1','1','1', '1', '1','0', '0', '0', '0','1','1','1', '1', '1','1', '1', '1', '1', '1'), '6' => array('1','1','1','1', '1', '1','0', '0', '0', '0','1','1','1', '1', '1','1', '1', '1', '1', '1'), '7' => array('1','1','1','1', '1', '1','0', '0', '0', '0','0','1','1', '1', '1','1', '1', '1', '1', '1'), '8' => array('1','1','1','1', '1', '1','0', '0', '0', '0','0', '0', '0', '0', '1','1', '1', '1', '1', '1'), '9' => array('1','1','1','0', '0', '0', '0', '1', '1', '1','0', '0', '0', '0', '1','1', '1', '1', '1', '1'), '10' => array('1','1','1','0', '0', '0', '0', '1', '1', '1','0', '0', '0', '0', '1','1', '1', '0', '1', '1'), '11' => array('1','1','0', '0', '0', '0','1', '1', '1', '1','0', '0', '0', '0', '1','1', '1', '0', '1', '1'), '12' => array('1','1','1','0', '0', '0', '0', '1', '1', '1','0', '0', '0', '0', '1','1', '1', '0', '1', '1'), '13' => array('1','1','1','0', '0', '0', '0', '1', '1', '1','0', '0', '0', '0', '1','1', '1', '0', '1', '1'), '14' => array('1','1','1','0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '1', '1','1', '1', '0', '1', '1'), '15' => array('1','1','1','0', '0', '0', '0', '1', '0', '0', '0', '0','1', '1', '1','1', '1', '0', '1', '1'), '16' => array('1','1','1','1', '0', '0', '0', '0', '0', '0', '0','1','1', '1', '1','1', '1', '0', '1', '1'), '17' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '0', '1', '1'), '18' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '0', '1', '1'), '19' => array('1','1','1','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '0', '1', '1'), '20' => array('0','1','0','1', '1', '1','1', '1', '1', '1','1','1','1', '1', '1','1', '1', '1', '0', '0'));
echo '<pre>';
echo "Before:\n\n";
"\n",
function ($a) { return implode('', $a); }, $arr
)
);
$arr2=$arr;
echo '<br><br>';
foreach ($arr as $i => $a) {
foreach ($a as $j => $v) {
if ($v !== '0') {
continue;
}
// поиск граничных, он обязателен для всех последующих, если не нужно его закрашивать, то сделать $arr2[$i][$j] = '0';
// $arr2[$i][$j] = 'X'; //центр
$arr2[$i][$j] = '0'; // раскоментировать, если не нужно закрашивать
}
// поиск одиночных, он не обязателен для контура
elseif ($arr[$i-1][$j] =='1' AND $arr[$i][$j+1] == '1' AND $arr[$i+1][$j] =='1' AND $arr[$i][$j-1] =='1'){
$arr2[$i][$j] = 'X'; //центр
}
// поиск контура, закрасит и одиночные
elseif ($arr[$i-1][$j] =='1' || $arr[$i][$j+1] == '1' || $arr[$i+1][$j] =='1' || $arr[$i][$j-1] =='1'){
$arr2[$i][$j] = 'X'; //центр
}
// поиск только внутренних, которые не граничат с 1
elseif ($arr[$i-1][$j] =='0' AND $arr[$i][$j+1] == '0' AND $arr[$i+1][$j] =='0' AND $arr[$i][$j-1] =='0'){
// $arr2[$i][$j] = 'X'; //центр
}
}
}
//$arr=array_replace($arr,$new);
echo
"\n\nAfter:\n\n",
"\n",
function ($a) { return implode('', $a); }, $arr2
)
);
PD9waHAKCi8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCiRhcnIgPSBhcnJheSggJzEnID0+IGFycmF5KCcwJywnMCcsJzAnLCcxJywgJzEnLCAnMScsJzEnLCAnMScsICcxJywgJzEnLCcxJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMCcsICcwJyksCgkJJzInID0+IGFycmF5KCcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzEnLCAnMScsICcxJywgJzEnLCcxJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMScsICcxJyksCgkJJzMnID0+IGFycmF5KCcwJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzEnLCAnMScsICcxJywgJzEnLCcxJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMCcsICcwJyksCgkJJzQnID0+IGFycmF5KCcxJywnMCcsJzEnLCcxJywgJzEnLCAnMScsJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMScsICcxJyksCgkJJzUnID0+IGFycmF5KCcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzAnLCAnMCcsICcwJywgJzAnLCcxJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMScsICcxJyksCgkJJzYnID0+IGFycmF5KCcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzAnLCAnMCcsICcwJywgJzAnLCcxJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMScsICcxJyksCgkJJzcnID0+IGFycmF5KCcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzAnLCAnMCcsICcwJywgJzAnLCcwJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMScsICcxJyksCgkJJzgnID0+IGFycmF5KCcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzAnLCAnMCcsICcwJywgJzAnLCcwJywgJzAnLCAnMCcsICcwJywgJzEnLCcxJywgJzEnLCAnMScsICcxJywgJzEnKSwKCQknOScgPT4gYXJyYXkoJzEnLCcxJywnMScsJzAnLCAnMCcsICcwJywgJzAnLCAnMScsICcxJywgJzEnLCcwJywgJzAnLCAnMCcsICcwJywgJzEnLCcxJywgJzEnLCAnMScsICcxJywgJzEnKSwKCQknMTAnID0+IGFycmF5KCcxJywnMScsJzEnLCcwJywgJzAnLCAnMCcsICcwJywgJzEnLCAnMScsICcxJywnMCcsICcwJywgJzAnLCAnMCcsICcxJywnMScsICcxJywgJzAnLCAnMScsICcxJyksCgkJJzExJyA9PiBhcnJheSgnMScsJzEnLCcwJywgJzAnLCAnMCcsICcwJywnMScsICcxJywgJzEnLCAnMScsJzAnLCAnMCcsICcwJywgJzAnLCAnMScsJzEnLCAnMScsICcwJywgJzEnLCAnMScpLAoJCScxMicgPT4gYXJyYXkoJzEnLCcxJywnMScsJzAnLCAnMCcsICcwJywgJzAnLCAnMScsICcxJywgJzEnLCcwJywgJzAnLCAnMCcsICcwJywgJzEnLCcxJywgJzEnLCAnMCcsICcxJywgJzEnKSwKCQknMTMnID0+IGFycmF5KCcxJywnMScsJzEnLCcwJywgJzAnLCAnMCcsICcwJywgJzEnLCAnMScsICcxJywnMCcsICcwJywgJzAnLCAnMCcsICcxJywnMScsICcxJywgJzAnLCAnMScsICcxJyksCgkJJzE0JyA9PiBhcnJheSgnMScsJzEnLCcxJywnMCcsICcwJywgJzAnLCAnMCcsICcxJywgJzEnLCAnMCcsICcwJywgJzAnLCAnMCcsICcxJywgJzEnLCcxJywgJzEnLCAnMCcsICcxJywgJzEnKSwKCQknMTUnID0+IGFycmF5KCcxJywnMScsJzEnLCcwJywgJzAnLCAnMCcsICcwJywgJzEnLCAnMCcsICcwJywgJzAnLCAnMCcsJzEnLCAnMScsICcxJywnMScsICcxJywgJzAnLCAnMScsICcxJyksCgkJJzE2JyA9PiBhcnJheSgnMScsJzEnLCcxJywnMScsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzAnLCAnMScsICcxJyksCgkJJzE3JyA9PiBhcnJheSgnMScsJzEnLCcxJywnMScsICcxJywgJzEnLCcxJywgJzEnLCAnMScsICcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzEnLCAnMScsICcwJywgJzEnLCAnMScpLAoJCScxOCcgPT4gYXJyYXkoJzEnLCcxJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzEnLCAnMScsJzEnLCcxJywnMScsICcxJywgJzEnLCcxJywgJzEnLCAnMCcsICcxJywgJzEnKSwKCQknMTknID0+IGFycmF5KCcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzEnLCAnMScsICcxJywgJzEnLCcxJywnMScsJzEnLCAnMScsICcxJywnMScsICcxJywgJzAnLCAnMScsICcxJyksCgkJJzIwJyA9PiBhcnJheSgnMCcsJzEnLCcwJywnMScsICcxJywgJzEnLCcxJywgJzEnLCAnMScsICcxJywnMScsJzEnLCcxJywgJzEnLCAnMScsJzEnLCAnMScsICcxJywgJzAnLCAnMCcpKTsKIAplY2hvICc8cHJlPic7CmVjaG8gIkJlZm9yZTpcblxuIjsKZWNobyBpbXBsb2RlKAogICAgIlxuIiwKICAgIGFycmF5X21hcCgKICAgICAgICBmdW5jdGlvbiAoJGEpIHsgcmV0dXJuIGltcGxvZGUoJycsICRhKTsgfSwKICAgICAgICAkYXJyCiAgICApCik7CiAKJGFycjI9JGFycjsKZWNobyAnPGJyPjxicj4nOwpmb3JlYWNoICgkYXJyIGFzICRpID0+ICRhKSB7CiAgICBmb3JlYWNoICgkYSBhcyAkaiA9PiAkdikgewoKICAgICAgICBpZiAoJHYgIT09ICcwJykgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9Ci8vINC/0L7QuNGB0Log0LPRgNCw0L3QuNGH0L3Ri9GFLCDQvtC9INC+0LHRj9C30LDRgtC10LvQtdC9INC00LvRjyDQstGB0LXRhSDQv9C+0YHQu9C10LTRg9GO0YnQuNGFLCDQtdGB0LvQuCDQvdC1INC90YPQttC90L4g0LXQs9C+INC30LDQutGA0LDRiNC40LLQsNGC0YwsINGC0L4g0YHQtNC10LvQsNGC0YwgJGFycjJbJGldWyRqXSA9ICcwJzsKCWlmICghYXJyYXlfa2V5X2V4aXN0cygkaS0xLCAkYXJyKXx8IWFycmF5X2tleV9leGlzdHMoJGorMSwgJGEpIHx8ICFhcnJheV9rZXlfZXhpc3RzKCRpKzEsICRhcnIpIHx8ICFhcnJheV9rZXlfZXhpc3RzKCRqLTEsICRhKSl7Ci8vCSRhcnIyWyRpXVskal0gPSAnWCc7ICAvL9GG0LXQvdGC0YAKCSRhcnIyWyRpXVskal0gPSAnMCc7ICAvLyDRgNCw0YHQutC+0LzQtdC90YLQuNGA0L7QstCw0YLRjCwg0LXRgdC70Lgg0L3QtSDQvdGD0LbQvdC+INC30LDQutGA0LDRiNC40LLQsNGC0YwKCX0KLy8g0L/QvtC40YHQuiDQvtC00LjQvdC+0YfQvdGL0YUsINC+0L0g0L3QtSDQvtCx0Y/Qt9Cw0YLQtdC70LXQvSDQtNC70Y8g0LrQvtC90YLRg9GA0LAKCWVsc2VpZiAoJGFyclskaS0xXVskal0gPT0nMScgQU5EICRhcnJbJGldWyRqKzFdID09ICcxJyBBTkQgJGFyclskaSsxXVskal0gPT0nMScgQU5EICRhcnJbJGldWyRqLTFdID09JzEnKXsKCSRhcnIyWyRpXVskal0gPSAnWCc7ICAvL9GG0LXQvdGC0YAKCX0KCi8vINC/0L7QuNGB0Log0LrQvtC90YLRg9GA0LAsINC30LDQutGA0LDRgdC40YIg0Lgg0L7QtNC40L3QvtGH0L3Ri9C1CgllbHNlaWYgKCRhcnJbJGktMV1bJGpdID09JzEnIHx8ICRhcnJbJGldWyRqKzFdID09ICcxJyB8fCAkYXJyWyRpKzFdWyRqXSA9PScxJyB8fCAkYXJyWyRpXVskai0xXSA9PScxJyl7CgkkYXJyMlskaV1bJGpdID0gJ1gnOyAgLy/RhtC10L3RgtGACgl9Ci8vINC/0L7QuNGB0Log0YLQvtC70YzQutC+INCy0L3Rg9GC0YDQtdC90L3QuNGFLCDQutC+0YLQvtGA0YvQtSDQvdC1INCz0YDQsNC90LjRh9Cw0YIg0YEgMQoJZWxzZWlmICgkYXJyWyRpLTFdWyRqXSA9PScwJyBBTkQgJGFyclskaV1bJGorMV0gPT0gJzAnIEFORCAkYXJyWyRpKzFdWyRqXSA9PScwJyBBTkQgJGFyclskaV1bJGotMV0gPT0nMCcpewovLwkkYXJyMlskaV1bJGpdID0gJ1gnOyAgLy/RhtC10L3RgtGACgl9CgogICAgfQp9CnVuc2V0KCRhKTsKIAovLyRhcnI9YXJyYXlfcmVwbGFjZSgkYXJyLCRuZXcpOwplY2hvCiAgICAiXG5cbkFmdGVyOlxuXG4iLAogICAgaW1wbG9kZSgKICAgICAgICAiXG4iLAogICAgICAgIGFycmF5X21hcCgKICAgICAgICAgICAgZnVuY3Rpb24gKCRhKSB7IHJldHVybiBpbXBsb2RlKCcnLCAkYSk7IH0sCiAgICAgICAgICAgICRhcnIyCiAgICAgICAgKQogICAgKTs=