【问题标题】:Return unique values from a column with multiple values per field从每个字段具有多个值的列返回唯一值
【发布时间】:2013-01-29 06:46:30
【问题描述】:

我有一个数据库表,其中有一列在每个字段中存储多个字符串,用 ; 分隔

我需要获取该列中所有唯一值的列表。我知道必须有一种更简单的方法来做到这一点,但我无法在任何地方找到我的答案。到目前为止,这是我正在做的事情:

$result = mysql_query("SELECT DISTINCT column FROM modx_scripture_table WHERE column!=''", $con);

$filter_all = array();

while($row = mysql_fetch_array($result))
{
    $filter_all[] = $row;
}

 function array_flatten($array) { 
  if (!is_array($array)) { 
    return FALSE; 
  } 
  $result = array(); 
  foreach ($array as $key => $value) { 
    if (is_array($value)) { 
      $result = array_merge($result, array_flatten($value)); 
    } 
    else { 
      $result[$key] = $value; 
    } 
  } 
  return $result; 
} 
$filter_flat = array_flatten($filter_all);


function array_explode($array) {
  $result = array();
  foreach ($array  as  $key => $value) {
  $result[$key] = explode(';',$value); 
  }
  return $result;
}


$filter_sploded = array_explode($filter_flat);

$filter_full = array_flatten($filter_sploded);

$filter_final = array_unique($filter_full);

print_r($filter_final);

除了 array_unique 之外,一切似乎都在工作。我仍然在 $filter_final 中得到重复的字符串。我做错了什么?

【问题讨论】:

  • 如果您直接在服务器上执行,您会获得唯一值吗?
  • 对不起,我对编程很陌生。 php不是总是在服务器端处理吗?我不确定你在问什么

标签: php mysql explode array-unique


【解决方案1】:

分解字符串后,使用array_unique() 查找数组中的唯一值。

例子:

$arr=array('1','2','3','4','5','3','1');
print_r(array_unique($arr));

输出:

Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)

【讨论】:

  • 感谢您的回复,但请仔细阅读我的原帖。我已经在使用 array_unique。我的问题是它不起作用。
猜你喜欢
  • 1970-01-01
  • 2015-05-03
  • 2019-09-09
  • 2017-08-08
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
相关资源
最近更新 更多