Преобразовать таблицу истинности в код PHP, если некоторые входные данные могут отсутствовать - PullRequest
0 голосов
/ 12 января 2020

У меня есть два массива $a и $b, первый из которых представляет собой данные, используемые для заполнения формы, а другой - выходные данные формы, которые могут быть изменены пользователем. Мы не можем предположить, что все входы присутствуют в обоих массивах. Я хочу новый массив, который содержит только те входные данные, которые не NULL и которые были изменены пользователем.

Таблица истинности для этого выглядит для меня как

isset($a)      isset($b)      output
   N              N           NULL
   N              Y           $b
   Y              N           empty string
   Y              Y           ($a != $b ? $b : NULL)

Пытаясь преобразовать это в PHP код, я вывел эту ужасную составную троичную вещь для каждого члена mem массива (предположительно скалярного):

$changedData = 
    (isset($a[mem]) 
    ? 
        (isset($b[mem]) 
        ? 
            ($a[mem] != $b[mem] ? $b[mem] : NULL) 
        : 
            '')
     : 
     (isset($b[mem]) ? $b[mem] : NULL)
);

Там, безусловно, должно быть быть лучшим способом сделать это. Ваш совет будет с благодарностью.

...