试图创建一个数组条件

时间:2012-09-08 05:54:37

标签: php arrays

我有一个文本字段,用户可以输入逗号分隔列表然后php将其转换为放置选择列表但是我想要一个条件,如果只输入一个值,将显示文本输入字段。我尝试了下面的代码,但它只返回选择框,即使只有一个条目。我怎样才能达到这个条件?

<?php $listval = explode(",",$vals);
if(is_array($listval)) { ?>

<select name="valuelist">
<?php 
    foreach($listval as $value) {
    echo '<option>'.$value.'</option>';
} ?>
</select>

<?php }else{ ?>

<input type="text" size="10" name="valuelist" value="<?php echo $vals; ?>" />
<?php } ?>

4 个答案:

答案 0 :(得分:2)

explode将始终返回一个数组。因此,is_array永远都是真的。 将您的if语句更改为此

if(sizeof($listval) > 1)

答案 1 :(得分:0)

试试这个

<?php $listval = strpos(',',$vals)?explode(",",$vals):$vals;
if(is_array($listval)) { ?>

<select name="valuelist">
<?php 
    foreach($listval as $value) {
    echo '<option>'.$value.'</option>';
} ?>
</select>

<?php }else{ ?>

<input type="text" size="10" name="valuelist" value="<?php echo $vals; ?>" />
<?php } ?>

答案 2 :(得分:0)

请尝试使用以下代码:

<?php $listval = explode(",",$vals);
if(count($listval) > 1) { ?>
<select name="valuelist">
<?php 
    foreach($listval as $value) {
    echo '<option>'.$value.'</option>';
} ?>
</select>

<?php } elseif(count($listval) == 1) { ?>

<input type="text" size="10" name="valuelist" value="<?php echo $vals; ?>" />
<?php } ?>

答案 3 :(得分:0)

如@Kris所示,您可以查看,

     count($array)

     sizeof($array)


   <?php $listval = explode(",",$vals);
      $array_count = count($listval);
      if($array_count > 1) { ?>

      <select name="valuelist">
      <?php 
         foreach($listval as $value) {
           echo '<option>'.$value.'</option>';
       } ?>
       </select>

      <?php }else{ ?>

          <input type="text" size="10" name="valuelist" value="<?php echo $vals; ?>" />
      <?php } ?>