2015-10-18 4 views
1

Как объединить два слова по буквам в PHP по следующим образом:Объединение двух слов вместе буквами по букве в php. Как заставить его работать?

Input # 1: абрикос

Input # 2: Kiwi

Ожидаемый результат: AKpirwiicot.

Так что, если символы одного слова больше, чем другие, он просто записывает их до конца.

Я пробовал по этой логике:

Input smthing 
str_split() 
array_merge() 

Но мне не удалось. Любые решения оценивались.

ответ

0

Как об этом:

def str_merge(a, b): 
    s = '' 
    k = min(len(a), len(b)) 
    for i in range(k): 
     s += a[i] + b[i] 
    s += a[k:] + b[k:] 
    return s 

В PHP:

function merge($a, $b) 
{ 
    $s = ''; 
    $k = min(strlen($a), strlen($b)); 
    for($i=0; $i<$k; $i++) 
    { 
     $s = $s . $a[$i] . $b[$i]; 
    } 
    $s = $s . substr($a, $k) . substr($b, $k); 
} 

Пожалуйста, простите мой PHP, не мой сильный язык ...

+0

Это не php, я полагаю. Не могли бы вы преобразовать его в php? –

+0

О, я только что заметил тег PHP. Я отредактирую свой ответ. – matanso

+0

Дорогой Никки, я хотел бы с вами связаться с некоторыми дополнительными вопросами. Если возможно, оставьте сообщение на странице [email protected] –

0

$string1 и $string2 могут быть в любом порядке.

$string1=str_split("Apricot"); 
$string2=str_split("Kiwi"); 

if(count($string2)>count($string1)){ 
    $templ = $string1; 
    $string1 = $string2; 
    $string2 = $temp; 
} 

$result = ""; 
foreach($string1 as $key => $var){ 
{ 
    $result.=$var; 
    if(isset($string2[$key])){ 
     $result.$string2[$key]; 
    } 
} 
echo $result; 

Array_merge() также вставляет один массив на конце другой, так что не будет делать то, что вы ищете, я верю.

Редактировать: ive скорректировано, чтобы не принимать во внимание порядок, как @nikkis ответ.

 Смежные вопросы

  • Нет связанных вопросов^_^