2014-09-04 4 views
0

Я хочу заказать строку, чтобы первые буквы были первыми. Чтобы сделать это сложнее, было бы неплохо следовать шаблону другой переменной.Заказ строки другой строкой, заглавными буквами

Допустим, у меня есть

$x = "FAcfAC"; 

и я хочу заказать это во-первых, в порядке символов в

$y = "FAC"; 

затем с прописной буквы первое, так что результат

$result = "FfAACc" 
+0

Разделить строку в массив с помощью str_split(), используйте один из многих методов сортировки массива для сортировки по значениям другого массива (например, http://stackoverflow.com/questions/348410/sort-an -array-based-on-another-array), затем перестроить строку с помощью implode –

ответ

0

Что-то вроде этого, единственный недостаток в том, что если символ не включен в $y он будет исключен из исходной строки.

<?php 

$x = 'FAcfAC'; 
$y = 'FAC'; 
$result = ''; 

$yLength = strlen($y); 

for ($i = 0; $i < $yLength; $i++) 
{ 
    $char = $y{$i}; 
    $upper = strtoupper($char); 
    $lower = strtolower($char); 

    if ($count = substr_count($x, $upper)) 
    { 
     $result .= str_repeat($upper, $count); 
    } 

    if ($count = substr_count($x, $lower)) 
    { 
     $result .= str_repeat($lower, $count); 
    } 
} 

echo $result; 
Смежные вопросы