За последние 24 часа нас посетили 59114 программистов и 1811 роботов. Сейчас ищут 994 программиста ...

Как отрисовать таблицу с проверкой "И"

Тема в разделе "PHP для новичков", создана пользователем bitande, 13 июл 2016.

  1. bitande

    bitande Новичок

    С нами с:
    9 июл 2016
    Сообщения:
    4
    Симпатии:
    0
    Всем привет.
    Только начал изучать php.

    Такой вопрос, как напишить функцию, которая составит и выведет в браузер таблицу истинности для для логического операторов &&

    вот что я написал.
    Код (Text):
    1. <?php
    2.  
    3.  
    4. function logic($x, $y) {
    5.  
    6.  
    7. echo '<table border="1"<tr><td> && </td><td>';
    8.  
    9.     echo $x;
    10. echo '</td>';
    11.  
    12. echo '<td>';
    13.     echo $y;
    14. echo '</td></tr>';
    15.  
    16.  
    17. echo '<tr><td>';
    18.     echo $x;
    19.  
    20. echo '</td>';
    21.  
    22. echo '<td>';
    23.  
    24.     if ($x == 0  ) {
    25.     echo 0;
    26.     } else {
    27.         echo 1;
    28.     }
    29.  
    30. echo '</td>';
    31.  
    32. echo '<td>';
    33.     if ($y == 0 || $x == 0 ) {
    34.         echo 0;
    35.     } else {
    36.         echo 1;
    37.     }
    38. echo '</td></tr>';
    39.  
    40.  
    41.  
    42. echo '<tr><td>';
    43.  
    44.     echo $y;
    45. echo '</td>';
    46.  
    47. echo '<td>';
    48.     if ($y == 0 || $x == 0 ) {
    49.         echo 0;
    50.     } else {
    51.         echo 1;
    52.     }
    53. echo '</td>';
    54.  
    55. echo '<td>';
    56.     if ($y == 0  ) {
    57.         echo 0;
    58.     } else {
    59.         echo 1;
    60.     }
    61. echo '</td></tr></table>';
    62.  
    63.  
    64. }
    65.  
    66.  
    67.  
    68.  
    69. echo logic(0,1);
    70. echo '<br>';
    71. echo '<br>';
    72. echo logic(1,1);
    73. echo '<br>';
    74. echo '<br>';
    75. echo logic(1,0);
    76. echo '<br>';
    77. echo '<br>';
    78. echo logic(0,0);
    79. ?>
    Все работает, но по моему это какой то изврат и можно сделать намного проще.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    да, перебор
     
  3. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Можно вызвать один раз функцию передав массив с нужными данными, не сказать что прям проще сделал, но просто ради интереса))

    PHP:
    1. print logic2( [ [0,1], [1,1], [1,0], [0,0]] );
    2.  
    3. function logic2( $xy  )
    4. {
    5. if ( !is_array( $xy ) ) return;
    6.  
    7. $limit = count($xy);
    8.  
    9. if ( $limit <= 0 ) return;
    10.  
    11. $html = '';
    12.  
    13. for ( $i = 0; $i < $limit; $i++)
    14. {
    15.   $x = isset($xy[$i][0]) ? $xy[$i][0] : 0;
    16.   $y = isset($xy[$i][1]) ? $xy[$i][1] : 0;
    17.  
    18.   $html .= '<table border="1" cellpadding="5" cellspacing="2" cols="3" frame="void" width="100">';
    19.   //-
    20.   $html .= '<tr>';
    21.   $html .= '<td> && </td>';
    22.   $html .= '<td>'.$x.'</td>';
    23.   $html .= '<td>'.$y.'</td>';
    24.   $html .= '</tr>';
    25.   //-
    26.   $html .= '<tr>';
    27.   $html .= '<td>'.$x.'</td>';
    28.   $html .= '<td>'.($x == 0 ? '0' : '1').'</td>';
    29.   $html .= '<td>'.( ($y == 0 || $x == 0) ? '0' : '1').'</td>';
    30.   $html .= '</tr>';
    31.   //-
    32.   $html .= '<tr>';
    33.   $html .= '<td>'.$y.'</td>';
    34.   $html .= '<td>'.( ($y == 0 || $x == 0) ? '0' : '1').'</td>';
    35.   $html .= '<td>'.($y == 0 ? '0' : '1').'</td>';
    36.   $html .= '</tr>';
    37.   $html .= '</table><br />';
    38. }
    39. unset($i, $limit, $x, $y, $xy);
    40.  
    41. return $html;
    42. }