複数の文字列が各フィールドに格納され、; で区切られた列を持つデータベース テーブルがあります。
その列のすべての一意の値のリストを取得する必要があります。これを行うにはもっと簡単な方法が必要であることはわかっていますが、どこにも答えが見つかりません。これが私がこれまでにやっていることです:
$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 でまだ重複した文字列を取得しています。私は何を間違っていますか?