PHP如何在数组中查找大写

弗拉基米尔

我有一个包含很多单词的数组,但是有些句子是大写的。例如:

THIS SENTENCE IS UPPERCASE

this sentece is in lowercase

我想用来拆分这两个句子\r\n,但我找不到解决方法

这是我检索此数组的方法:

    $result_pk_info = array();
    while ($row = odbc_fetch_array($sql_pk_info))
    {
        $opisanie = iconv("cp1257", "UTF-8", trim($row['opis']));
        $id = iconv("cp1257", "UTF-8", trim($row['pacientid']));
        $date = iconv("cp1257", "UTF-8", trim($row['data']));

        $desc = explode('@#$', $opisanie);

        $all_info = "<tr><td>".$desc[1]."</td></tr>";

        $result_pk_info[] = $all_info;
    }

$desc我要搜索和拆分大写和小写的单词数组中。

那么有人可以帮我吗?

UPD我所拥有的文本具有以下结构:SENTENCE IN UPPERCASE Sentece in lower case

克莱门特

该功能是您要寻找的:

    function split_upper_lower ($string)
{
    $words = explode (' ', $string);
    $i = 0;
    foreach ($words as $word)
    {
        if (ctype_upper ($word))
            $new_string_array[++$i]['type'] = 'UPPER';  
        else
            $new_string_array[++$i]['type'] = 'LOWER';
        $new_string_array[$i]['word'] = $word;
    }
    $new_string = '';
    foreach ($new_string_array as $key => $new_word)
    {
        if (!isset ($current_mode))
        {
            if (ctype_upper ($new_word))
                $current_mode = 'UPPER';
            else
                $current_mode = 'LOWER';
        }
        if ($new_word['type'] === $current_mode)
        {
            $new_string .= $new_word['word'];
            if (isset ($new_string_array[$key + 1]))
                $new_string .= ' ';
        }
        else
        {
            $new_string .= "\r\n" . $new_word['word'];
            if (isset ($new_string_array[$key + 1]))
                $new_string .= ' ';
            if ($current_mode === 'UPPER') $current_mode = 'LOWER';
            else $current_mode = 'UPPER';
        }
    }
    return $new_string;
}

测试了br

$string = 'HI how ARE you doing ?';
echo split_upper_lower ($string);

输出 :

HI 
how 
ARE 
you doing ?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章