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

时间:2017-12-22 23:11:47

标签: php arrays multidimensional-array

我有一个<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].'">';
   }
}

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

--- wrap.sh ---
#!/usr/bin/env bash
j <<EOF
+/ $(read -p 'Grades: ' k; echo $k)
EOF
---
./wrap.sh
Grades: 3 5 9
17