function utf8_bytes_to_hex($str) { mb_internal_encoding('UTF-8'); $out = array(); while (strlen($str)) { $out[] = utf8_bytes_to_uni_hex(mb_substr($str, 0, 1)); $str = mb_substr($str, 1); } return implode('-', $out); }
# $names = array(); $vars = array(); foreach ($obj as $row) { if (!strlen($row['emoji'])) { foreach ($row['aliases'] as $alias) { $names['_'][] = $alias; } continue; } $uni = $row['emoji']; $chars = preg_split('/(?<!^)(?!$)/u', $uni); $unis_all = array(); $unis_basic = array(); foreach ($chars as $char) { $uni = utf8_bytes_to_uni_hex($char); $unis_all[] = $uni; if ($uni !== 'fe0f') { $unis_basic[] = $uni; } } $simple_basic = implode('-', $unis_basic); $simple_full = implode('-', $unis_all); # # variation? # if ($simple_basic !== $simple_full) { $vars[$simple_basic] = array($simple_full); } else { if (count($old_vars[$simple_basic])) { $vars[$simple_basic] = $old_vars[$simple_basic];