How can I combine two strings together in PHP?

PhpStringVariablesCombinations

Php Problem Overview


I don't actually know how to describe what I wanted, but I'll show you:

For example:

$data1 = "the color is";
$data2 = "red";

What should I do (or process) so $result is the combination of $data1 and $data2?

Desired result:

$result = "the color is red";

Php Solutions


Solution 1 - Php

$result = $data1 . $data2;

This is called string concatenation. Your example lacks a space though, so for that specifically, you would need:

$result = $data1 . ' ' . $data2;

Solution 2 - Php

There are several ways to concatenate two strings together.

Use the concatenation operator . (and .=)

In PHP . is the concatenation operator which returns the concatenation of its right and left arguments

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;

If you want to append a string to another string you would use the .= operator:

$data1 = "the color is ";
$data1 .= "red"

Complex (curly) syntax / double quotes strings

In PHP variables contained in double quoted strings are interpolated (i.e. their values are "swapped out" for the variable). This means you can place the variables in place of the strings and just put a space in between them. The curly braces make it clear where the variables are.

$result = "{$data1} {$data2}";

Note: this will also work without the braces in your case:

$result = "$data1 $data2";

You can also concatenate array values inside a string :

$arr1 = ['val' => 'This is a'];
$arr2 = ['val' => 'test'];
$variable = "{$arr1['val']} {$arr2['val']}";

Use sprintf() or printf()

sprintf() allows us to format strings using powerful formatting options. It is overkill for such simple concatenation but it handy when you have a complex string and/or want to do some formatting of the data as well.

$result = sprintf("%s %s", $data1, $data2);

printf() does the same thing but will immediately display the output.

printf("%s %s", $data1, $data2);
// same as
$result = sprintf("%s %s", $data1, $data2);
echo $result;

Heredoc

Heredocs can also be used to combine variables into a string.

$result= <<<EOT
$data1 $data2
EOT;

Use a , with echo()

This only works when echoing out content and not assigning to a variable. But you can use a comma to separate a list of expressions for PHP to echo out and use a string with one blank space as one of those expressions:

echo $data1, ' ', $data2;

Solution 3 - Php

Another possibility is the .= operator. I'm using it for huge SQL queries.

$string = "the color is ";
$string .= "red";

echo $string; // Gives: the color is red

Solution 4 - Php

Concatenate them with the . operator:

$result = $data1 . " " . $data2;

Or use string interpolation:

$result = "$data1 $data2";

Solution 5 - Php

$result = implode(' ', array($data1, $data2));

is more generic.

Solution 6 - Php

Another form available is this:

<?php
$data1 = "the color is";
$data2 = "red";
$result = "{$data1} {$data2}";

Solution 7 - Php

You can do this using PHP:

$txt1 = "the color is";
$txt2 = " red!";
echo $txt1 . $txt2;

This will combine two strings and the output will be: "the color is red!".

Solution 8 - Php

You can try the following line of code

$result = $data1 . " " . $data2;

Solution 9 - Php

A period is used to concatenate strings. Simple example to turn two string variables into a single variable:

$full = $part1 . $part2;

In your example, you'd want to do:

$result = $data1 . ' ' . $data2;

You'll notice I added a string of one space between the two variables. This is because your original $data1 did not end with a space. If you had combined them without it, your $result variable would end up looking like the color isred.

Solution 10 - Php

This should work for you:

$result = $data1 . " " . $data2;` 

Reference: PHP String Variables

Solution 11 - Php

$s = "my name is ";

$s .= "keyur";

echo $s; 

result:

my name is keyur

Solution 12 - Php

Try this:

$result = $data1 . $data2;

Solution 13 - Php

I am not exactly clear with what your requirements are, but basically you could separately define the two variables and thereafter combine them together.

$data1="The colour is ";
$data2="red";

$result=$data1.$data2;

By doing so you can even declare $data2 as a global level, so you could change its value during execution. For instance, it could obtain the answer "red" from a checkbox.

Solution 14 - Php

Combine two strings together in PHP:

$result = $data1 . ' ' . $data2;

Solution 15 - Php

I believe the most performant way is:

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;

If you want to implement localisation, you may do something like this:

$translationText = "the color is %s";
$translationRed  = "red";
$result = sprintf($translationText, $translationRed);

It's a bit slower, but it does not assume grammar rules.

Solution 16 - Php

  1. Concatenate the string (space between each string)

    Code Snippet:

    <?php
        $txt1 = "Sachin";
        $txt2 = "Tendulkar";
    
        $result = $txt1 . $txt2 ;
        echo $result . "\n";
    ?>
    

    Output: SachinTendulkar

  2. Concatenate the string where space exists

    Code Snippet:

     <?php
         $txt1 = "Sachin";
         $txt2 = "Tendulkar";
    
         $result = $txt1 . " " . $txt2;
         echo $result . "\n";
     ?>
    

    Output: Sachin Tendulkar

  3. Concatenate the string using printf function.

    Code Snippet:

     <?php
         $data1 = "Sachin";
         $data2 = "Tendulkar";
         printf("%s%s\n", $data1, $data2);
         printf("%s %s\n", $data1, $data2);
     ?>
    

    Output:

     SachinTendulkar
     Sachin Tendulkar
    

Solution 17 - Php

Try this. We can append a string in PHP with the dot (.) symbol

$data1 = "the color is";
$data2 = "red";

echo $data1 . $data2; // The color isred
echo $data1 . " " . $data2; // The color is red (we have appended space)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionglennanywayView Question on Stackoverflow
Solution 1 - PhpLogan SermanView Answer on Stackoverflow
Solution 2 - PhpJohn CondeView Answer on Stackoverflow
Solution 3 - PhpcodelameView Answer on Stackoverflow
Solution 4 - PhpPaige RutenView Answer on Stackoverflow
Solution 5 - PhpWhy 50 points to comment...View Answer on Stackoverflow
Solution 6 - PhpTim GView Answer on Stackoverflow
Solution 7 - PhpsunilView Answer on Stackoverflow
Solution 8 - Phpuser710502View Answer on Stackoverflow
Solution 9 - PhpAken RobertsView Answer on Stackoverflow
Solution 10 - PhpRobertView Answer on Stackoverflow
Solution 11 - Phpkeyur sojitraView Answer on Stackoverflow
Solution 12 - PhpFarhanView Answer on Stackoverflow
Solution 13 - PhpYoosufView Answer on Stackoverflow
Solution 14 - PhpRafi Ullah PatelView Answer on Stackoverflow
Solution 15 - PhpPedro Amaral CoutoView Answer on Stackoverflow
Solution 16 - PhprashedcsView Answer on Stackoverflow
Solution 17 - PhpKankatala KrishnaView Answer on Stackoverflow