我经常会遇到以下类似情况:
<?php
foreach($items as $item) {
if($item['key']) {
echo 'Alright';
if($item['value']) {
echo 'Inside';
} else {
$output[] = [
$item['data1'],
$item['data2'],
];
}
} else {
$output[] = [
$item['data1'],
$item['data2'],
];
}
}
print_r($output);
如您所见,我使用嵌套的if语句。让我讨厌的是,我在两个else
中都具有相同的输出。我希望保持干燥。
因此,如果我在foreach中任何地方的else语句中,我都希望输出相同的结果。
我的真实代码要复杂一些。
foreach($out as $i => $data) {
$dayshort = mb_substr($data[0], 0, 3);
if(isset($out[$i+1][0])) {
$future = $out[$i+1][0];
$daykey = array_search($data[0], $weekdays);
$nextday = $weekdays[$daykey + 1];
if($nextday != $future) {
$backkey = array_search($future, $weekdays) - 1;
$backname = mb_substr($weekdays[$backkey], 0, 3);
$final[] = [
$dayshort . ' - ' . $backname,
$data[1],
$data[2]
];
} else {
$final[] = [
$data[0],
$data[1],
$data[2]
];
}
} else {
$final[] = [
$data[0],
$data[1],
$data[2]
];
}
}
现在,我在此处使用完整代码https://github.com/jenstornell/daybreaker
设置了一个仓库答案 0 :(得分:0)
我认为它更简单
<?php
foreach($items as $item) {
if($item['key']) {
echo 'Alright';
if($item['value'])
echo 'Inside';
}
$output[] = [
$item['data1'],
$item['data2'],
];
}