使用多维数组创建输入元素

问题描述 投票:0回答:2

我有一个<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].'">';
   }
}
php arrays multidimensional-array
2个回答
1
投票
$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);

0
投票
$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]}\">";
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.