создание значения по умолчанию с оператором if в php - PullRequest
0 голосов
/ 11 января 2011

Мне нужна помощь с переработкой логики этого php-кода. То, что я хотел бы сделать, это создать некоторые условия в этом цикле foreach для обработки пустых значений null и присвоения ему значения по умолчанию, например 'n / a'. Он использует $ class_array для сопоставления с одним из случаев, который читается из текстового файла, но если у меня нет ни одного из статусов, тогда сделайте его 'n / a'.

Мне просто не понятно, как это построить. Вот часть кода. Я думаю, это должно быть обработано в рамках этого условия foreach? Спасибо.

$class_array = array(
        'Process succeeded'      => 'success',
        'Process failed'         => 'failure',
        'Review Logs for status' => 'warn',
        'Check for Errors'       => 'warn'
);

foreach ($InputFile as $line){
    preg_match_all("/([0-9])-([^=]+)=([^;]+);/", $line, $matches, PREG_SET_ORDER);
    $LineData = array();
    foreach ($matches as $information) {
        $LineData[$information[2]] = $information[3];
    }
    $timestamp = strtotime($LineData["LogDate"]." ".$LineData["StartTime"]);
    $LineData['StartTime'] = date("Y-m-d H:i:s",strtotime($LineData['StartTime']));
    $LineData['server_url'] = $server_array[$LineData['Server']];
    $LineData['status_class'] = $class_array[$LineData['Status']];

    $data[$timestamp] = $LineData;
}

Ответы [ 3 ]

1 голос
/ 11 января 2011

Вы имеете в виду, что $ LineData ['status_class'] должен быть установлен в 'n / a' в случае, если в $ class_array нет ключа $ LineData ['Status']?Если это так, это должно сделать:

$status_class = 'n/a';
if (array_key_exists($LineData['Status'], $class_array)) {
    $status_class = $class_array[$LineData['Status']];
}
$LineData['status_class'] = $status_class;
0 голосов
/ 11 января 2011

Я думаю, что это должно работать:

if(isset($LineData['status_class'])) {

  $LineData['status_class'] array_key_exists($LineData['Status'], $class_array)
     ? $class_array[$LineData['Status']]
     : 'n/a';
}
else
{
  $LineData['status_class'] = 'n/a';
}
0 голосов
/ 11 января 2011

Используйте условное условное обозначение.

//Lets assume we're getting some data from a form
$OriginalValue = $_POST['some_user_input'];

//Set a new variable, $NewValue, to the entered data (if available) or a default value.
$NewValue = ( empty($OriginalValue) ) ? 'No data entered' : $OriginalValue;

Просто поместите любое условие (или набор условий) в скобки, и это действует как if / else.Если значение равно true, установите для $ NewValue значение «Нет введенных данных», иначе установите для $ NewValue значение $ OriginalValue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...