0

我有一个表,其中包含 id、name 等字段和 (1,"sony,nokia,htc"),(2,"sony")(3,"Samsung") 等值。我获取记录但我的逻辑比我的逻辑要长期望。如果名称包含“,”,我想爆炸并获取唯一记录。我的结果看起来像

Name array will be { 0 =>"sony",1=>"HTC",2=>"Nokia"}.My dummy logic is here (This is incomplete not working properly.)
<?php 
$row = array("sony,htc,nokia","htc","sony");
    foreach ($row as $key => $valuek) {
                 if(strpos($valuek['value'], ",") !== false)
                 {
                  $str[] = explode(",",$valuek['value'] )
                    ?>
                    <option value="<?php echo $valuek['value']?>"><?php echo $valuek['value']?></option>
                   <?php 
                 }

            ?>
       <option value="<?php echo $valuek['value']?>"><?php echo $valuek['value']?></option>
       <?php  } $i++;}?>
4

1 回答 1

0

你不需要做爆炸

在您获取所有数据并存储在数组中的开始时,您可以使用array_unique()

$row = array("sony,htc,nokia","htc","sony"); // all fetch data from db.


 $row = implode(',',$row); // first convert the array -> strings
 $row = explode(',',$row); // then return back to array and you can now use array_unique
 $row = array_unique($row);  // this will filter all data with uniqueness and drop some data that have same value

然后你可以用它来循环数据。

 for($i=0;$i<count($row)){
     echo '<option value="'.$row[$i].'">'.$row[$i].'</option>';
 }

这将使您的代码更短且易于管理..

于 2013-03-07T04:42:42.087 回答