Problem of 8 Neighbours of an element in a 2 | Dimension of Array ; Count of 1 s ; Counting all neighbouring 1 s ; Comparing the number of neighbouring 1 s with given ranges ; Copying changes to the main matrix ; Driver code ; Function call to calculate the resultant matrix after ' K ' iterations . ; Printing Result
< ? php #define N  4 NEW_LINE function predictMatrix ( $ arr , $ range1a , $ range1b , $ range0a , $ range0b , $ K , $ b ) { $ N = 4 ; $ c = 0 ; while ( $ K -- ) { for ( $ i = 0 ; $ i < $ N ; $ i ++ ) { for ( $ j = 0 ; $ j < $ N ; $ j ++ ) { $ c = 0 ; if ( $ i > 0 && $ arr [ $ i - 1 ] [ $ j ] == 1 ) $ c ++ ; if ( $ j > 0 && $ arr [ $ i ] [ $ j - 1 ] == 1 ) $ c ++ ; if ( $ i > 0 && $ j > 0 && $ arr [ $ i - 1 ] [ $ j - 1 ] == 1 ) $ c ++ ; if ( $ i < $ N - 1 && $ arr [ $ i + 1 ] [ $ j ] == 1 ) $ c ++ ; if ( $ j < $ N - 1 && $ arr [ $ i ] [ $ j + 1 ] == 1 ) $ c ++ ; if ( $ i < $ N - 1 && $ j < $ N - 1 && $ arr [ $ i + 1 ] [ $ j + 1 ] == 1 ) $ c ++ ; if ( $ i < $ N - 1 && $ j > 0 && $ arr [ $ i + 1 ] [ $ j - 1 ] == 1 ) $ c ++ ; if ( $ i > 0 && $ j < $ N - 1 && $ arr [ $ i - 1 ] [ $ j + 1 ] == 1 ) $ c ++ ; if ( $ arr [ $ i ] [ $ j ] == 1 ) { if ( $ c >= $ range1a && $ c <= $ range1b ) $ b [ $ i ] [ $ j ] = 1 ; else $ b [ $ i ] [ $ j ] = 0 ; } if ( $ arr [ $ i ] [ $ j ] == 0 ) { if ( $ c >= $ range0a && $ c <= $ range0b ) $ b [ $ i ] [ $ j ] = 1 ; else $ b [ $ i ] [ $ j ] = 0 ; } } } for ( $ k = 0 ; $ k < $ N ; $ k ++ ) for ( $ m = 0 ; $ m < $ N ; $ m ++ ) $ arr [ $ k ] [ $ m ] = $ b [ $ k ] [ $ m ] ; } return $ b ; } $ N = 4 ; $ arr = array ( array ( 0 , 0 , 0 , 0 ) , array ( 0 , 1 , 1 , 0 ) , array ( 0 , 0 , 1 , 0 ) , array ( 0 , 1 , 0 , 1 ) ) ; $ range1a = 2 ; $ range1b = 2 ; $ range0a = 2 ; $ range0b = 3 ; $ K = 3 ; $ b = array ( array ( 0 ) ) ; $ b1 = predictMatrix ( $ arr , $ range1a , $ range1b , $ range0a , $ range0b , $ K , $ b ) ; for ( $ i = 0 ; $ i < $ N ; $ i ++ ) { echo " STRNEWLINE " ; for ( $ j = 0 ; $ j < $ N ; $ j ++ ) echo $ b1 [ $ i ] [ $ j ] . " ▁ " ; }