Как перебрать условие через набор массивов, чтобы вернуть значения того, которое истинно

У меня есть текстовое поле, которое представляет текст, который преобразуется в массив с помощью функции разнесения, а затем значения этого массива преобразуются в отдельные массивы в цикле foreach. Это функция

Запись в текстовой области
пн | 0000 | 0500 | Утренний взрыв | sally.jpg | DJ Sally

пн | 0500 | 1000 | Дневное мыло | wally.jpg | Wally

Код обработки

$itemlist = trim(preg_replace('/\n/', '', $itemlist ));
$itemlist = explode('---', $itemlist);

$dow = strtolower(date( 'D' ));
$tod = date( 'Hi' );

foreach($itemlist as $items) {
//this creates 2 arrays with 6 keys each
//array([0]=>mon[1]=>0000[2]=>0500[3]=>The Morning Blast[4]=>sally.jpg[5]=>DJ Sally)
//array([0]=>mon[1]=>0500[2]=>1000[3]=>Day Time Soap[4]=>wally.jpg[5]=>Wally)

$itempart = explode('|', $items);

if($itempart[0] == $dow && $tod >= $itempart[1] && $tod <= $itempart[2] ) {
?>

<div>
<h4><?php echo $itempart[3]; ?></h4>
<p><?php echo $itempart[5]; ?></p>
<img src="<?php echo $itempart[4]; ?>" />
</div>

<?php }
}//endforeach ?>

Проблемы
Условие, которое проверяет день недели и время суток, обрабатывает только первый массив и корректно возвращает выходной HTML, но как только время истечет, а затем станет false, последующий массив не будет обработан, даже если он равен true.

Логика кажется правильной, но она просто не будет работать. Что нужно, чтобы сделать это сканирование списка массивов и вернуть только тот, который является истинным?

0

Решение

Этот код не завершен: цикл открыт, но никогда не завершается. Ваша проблема в том, что вы только обрезаете \ n, в то время как вы также должны ожидать других символов (возврат каретки, не только перевод строки). Либо правильно устранить разрывы строк

$itemlist= trim( preg_replace( '/\\s*[\\n\\r]\\s*/', '', $itemlist ) );

или обрезать его позже с

$itempart= explode( '|', trim( $items ) );

в противном случае ваше состояние не удается, потому что fri в вашем элементе массива добавляется возврат каретки.

1

Другие решения

Других решений пока нет …