我的表包含id,名称和值等字段,如(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++;}?>
答案 0 :(得分: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>';
}
这将使您的代码更短,更易于管理..