Surfjamaica
Surfjamaica

Reputation: 63

PHP Combine two strings

Is there a way in php to make two strings combine to one? I want to combine strings with the same size together?

$string1 = "apple"
$string2 = "block"
//FUNCTION STUFF HERE
$output = "abplpolcek";

Upvotes: 1

Views: 753

Answers (7)

Utopia
Utopia

Reputation: 663

echo str_shuffle("apple" . "block");

result: aekbplopcl

Upvotes: 0

Kasia Gogolek
Kasia Gogolek

Reputation: 3414

This will work for strings that are different lenght as well

$string1 = "apple";
$string2 = "block";

$arr1 = str_split($string1);
$arr2 = str_split($string2);

if(count($arr1) > 0)
{
    foreach($arr1 as $key => $value)
    {
        $_tmp[] = $value;
        if(isset($arr2[$key]))
        {
            $_tmp[] = $arr2[$key];
        }
    }
}
else
{
    $key = 0;
}

if($key + 1 < count($arr2))
{
    for($i = $key + 1; $i < count($arr2); $i++)
    {
        $_tmp[] = $arr2[$key];
    }
}

echo implode("", $_tmp);

Upvotes: 0

Fluffeh
Fluffeh

Reputation: 33512

You could try this:

$output='';
for($i=0;$i<strlen($string1);$i++)
{
    $output.=$string1[$i];
    $output.=$string2[$i];
}

echo $output;

Or you can write a simple function like this:

function funnyConcatStrings($str1, $str2)
{
    $output='';
    $leng=strlen($str1);
    if(strlen($str1)==strlen($str2))
    {
        for($i=0;$i<$leng;$i++)
        {
            $output.=$str1[$i];
            $output.=$str2[$i];
        }
    }
    else
    {
        $output='Strings were not equal.\n';
    }
    return $output;
}

// Use it like this:

$mashedString=funnyConcatStrings($string1, $string2);

// or

echo funnyConcatStrings($string1, $string2);

Upvotes: 6

Ren&#233; H&#246;hle
Ren&#233; H&#246;hle

Reputation: 27295

1.) Check if the string have the same lengts with strlen

2.) Then you can iterate through the string and access them as an array

$string = 'test123';
echo $string[0] -> 't'

Then you can combine the string and safe them in a new variable.

Upvotes: 1

Ionut Flavius Pogacian
Ionut Flavius Pogacian

Reputation: 4801

Really easy;

$a = 'abcdef';
$b = 'ghijkl';

$l = strlen($a);

$s='';

for($i=0;$i<$l;$i++)$s .= $a[$i] + $b[$i];

echo $s;

Upvotes: 1

VettelS
VettelS

Reputation: 1224

$str_length = 5;
$output = '';

for($i = 0; $i < $str_length; $i++)
{
    $output .= $string1[$i] . $string2[$i];
}

Upvotes: 2

ka_lin
ka_lin

Reputation: 9432

use for instance $string1[0] ( letter 'a' ) to access the first letter and make a for loop

Upvotes: 1

Related Questions