使用php获取字符串中第一个大写字母的位置

esa*_*wan 8 php sorting string

我有一个数组,其中每个单词中的不同字母是大写的:

aPple,Orange,baNana,mANgo,木瓜

我想得到第一个字母是资本的位置.并相应地订购它们.这是第一个字母资本将首先出现的字样,然后是第二个字母资本将是第二个等等......就像

橙子
番木瓜
aAple
mAngo
baNana

如果两个单词在同一位置带有大写字母,例如在上面的列表中,Orange和Pappaya以第一个字母作为首字母,那么它们必须按字母顺序排序.

在PHP中这很难实现吗?

Ja͢*_*͢ck 12

你可以用 strcspn()

找到不匹配掩码的初始段的长度

例如:

echo strcspn('aAple', 'ABCDEFGHJIJKLMNOPQRSTUVWXYZ');
// prints '1' - the string starts with 1 character not in upper case
Run Code Online (Sandbox Code Playgroud)

完整代码

echo "<pre>" ;
$array = array("aPple", "Orange", "baNana", "mANgo", "Papaya");
foreach($array as $value)
{
    echo $value , "= " , strcspn($value, 'ABCDEFGHJIJKLMNOPQRSTUVWXYZ') . PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)

产量

aPple= 1
Orange= 0
baNana= 2
mANgo= 1
Papaya= 0
Run Code Online (Sandbox Code Playgroud)

您可以使用该功能进行(反向)排序.

  • 如果你不喜欢使用整个字母表(无论出于何种原因),你可以使用`strcspn('aAple',implode('',range('A','Z'))); (4认同)