0

複数の文字列が各フィールドに格納され、; で区切られた列を持つデータベース テーブルがあります。

その列のすべての一意の値のリストを取得する必要があります。これを行うにはもっと簡単な方法が必要であることはわかっていますが、どこにも答えが見つかりません。これが私がこれまでにやっていることです:

$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 でまだ重複した文字列を取得しています。私は何を間違っていますか?

4

1 に答える 1

0

文字列を分解した後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
)
于 2013-01-29T06:57:25.430 に答える