检测字符串的大小写并将其应用于PHP中的另一个字符串

检测字符串的大小写并将其应用于PHP中的另一个字符串,php,string,Php,String,正如标题所示,我试图检测字符串的大小写,并将相同的格式应用于新字符串 示例: Yellow cheese>>>检测到它只是大写的第一个字符>>>将blue cheese更改为blue cheese 这可能吗?某种程度上取决于算法的智能程度。一个简单的例子可以是: <?php $v1 = "Yellow cheese"; $v2 = "blue cheese"; $out = ""; for($i = 0; $i < max(strlen($v1), strlen($v2)); $i+

正如标题所示,我试图检测字符串的大小写,并将相同的格式应用于新字符串

示例:
Yellow cheese
>>>检测到它只是大写的第一个字符>>>将
blue cheese
更改为
blue cheese


这可能吗?

某种程度上取决于算法的智能程度。一个简单的例子可以是:

<?php
$v1 = "Yellow cheese";
$v2 = "blue cheese";
$out = "";
for($i = 0; $i < max(strlen($v1), strlen($v2)); $i++) {
  if($v1[i] === strtoupper($v1[i])) {
    $out .= strtoupper($v2[i]);
  } else {
    $out .= strtolower($v2[i]);
  }
}

这在某种程度上取决于算法的智能程度。一个简单的例子可以是:

<?php
$v1 = "Yellow cheese";
$v2 = "blue cheese";
$out = "";
for($i = 0; $i < max(strlen($v1), strlen($v2)); $i++) {
  if($v1[i] === strtoupper($v1[i])) {
    $out .= strtoupper($v2[i]);
  } else {
    $out .= strtolower($v2[i]);
  }
}
你可以试试:

$ref = 'Yellow cheese';
$str = 'blue cheese';
$ref_words = explode(' ', $ref);
$str_words = explode(' ', $str);
for($i=0; $i<count($ref_words); $i++) {
    if (preg_match('/^[A-Z]/', $ref_words[$i])) {
        $str_words[$i] = ucfirst($str_words[$i]);
    }
}
$res = implode(' ', $str_words);
echo $res,"\n";
你可以试试:

$ref = 'Yellow cheese';
$str = 'blue cheese';
$ref_words = explode(' ', $ref);
$str_words = explode(' ', $str);
for($i=0; $i<count($ref_words); $i++) {
    if (preg_match('/^[A-Z]/', $ref_words[$i])) {
        $str_words[$i] = ucfirst($str_words[$i]);
    }
}
$res = implode(' ', $str_words);
echo $res,"\n";

也许您可以节省一些时间,使用ucwords(每个字符串标记的所有第一个字母)或ucfirst(仅第一个字母)将所有字符串大写。也许您可以节省一些时间,使用ucwords(每个字符串标记的所有第一个字母)或ucfirst(仅第一个字母)将所有字符串大写。