我有一个<input>
元素列表,我试图简化它,所以代码更整洁,更清洁。这就是我现在所拥有的:
if($row['replies'] == '1') {
echo'<input type="submit" value="Locked">';
}else{
echo'<input type="submit" value="Lock">';
}
if($row['flagged'] == '1') {
echo'<input type="submit" value="Ignore">';
}
if($row['deleted'] == '1') {
echo'<input type="submit" value="Deleted">';
}else{
echo'<input type="submit" value="Delete">';
}
<input type="submit" value="Hello">
<input type="submit" value="Goodbye">
我试图使用多维数组来简化这个,但我不能完全理解它。这是我到目前为止所尝试的:
$options = array("Lock"=>array("replies","Locked"),"Ignore"=>"flagged","Delete"=>array("deleted","Deleted"),"Hello","Goodbye");
foreach($options as $option) {
if(in_array($option[0], array('Lock','Deleted'), true) && $row[$option[1] == '1') {
echo'<input type="submit" value="'.$option[2].'">';
}else{
echo'<input type="submit" value="'.$option[0].'">';
}
}
$submit_values =
[
$row['replies'] == '1' ? 'locked' : 'lock',
$row['flagged'] == '1' ? 'ignore' : '',
$row['deleted'] == '1' ? 'deleted' : 'delete',
'hello',
'goodbye'
];
$submit_values = array_filter($submit_values); // Remove any empty values.
foreach($submit_values as $value)
printf ('<input type="submit" value="%s">', $value);
$opts = array(
"replies" => array("Lock", "Locked"),
"flagged" => array(null, "Ignore"),
"deleted" => array("Delete", "Deleted")
);
foreach ($opts as $key => $values) {
if ($row[$key] == 1) {
echo "<input type=\"submit\" value=\"{$values[1]}\">";
} else {
if ($values[0]) {
echo "<input type=\"submit\" value=\"{values[0]}\">";
}
}
}