droidus
droidus

Reputation: 641

How to use echo in php array to return as a string

I am trying to return an array of strings. I do this:

$errors[] = toolbarCheckCreds($_COOKIE['uname'], $_COOKIE['pword'], $_COOKIE['rememberMe']);
    echo $errors[0];

and this in the function at the end:

return $errors;

and I set an error like this:

$errors[] = "error goes here!";

Basically, when I return my array, and echo it, it gives me the following output:

Array

Upvotes: 7

Views: 39397

Answers (4)

David Rock
David Rock

Reputation: 41

$list = array( 'one Thing', 'Two Things', 'The Things' );
echo implode( ", ", $list );

Result One thing, two things, three things

Easy breezy, hope it helps i know i'm late but useful to someone else maybe?

Upvotes: 4

Ariel
Ariel

Reputation: 404

You can't echo out an array's content as-is.

If you want to check the array's contents, you can use print_r() or var_export() with the return parameter set to True.

Upvotes: 2

jamesmortensen
jamesmortensen

Reputation: 34038

Use PHP implode to convert your Array to a string that you can echo. Using echo on an array will just display the data type.

return implode(' ', $errors);

If you want to separate the errors with a delimiter other than a space, just replace the space in the first parameter:

return implode(' :: ', $errors);

For example, if your errors array contained three values:

[ "Invalid data" , "404" , "Syntax error" ]

then your string, if you used the ::, would look like this when you run echo on the result:

Invalid data :: 404 :: Syntax error

See the reference link I included for another example.

Upvotes: 9

James Glass
James Glass

Reputation: 4300

You need to loop through your array. There are multiple ways of doing this, with my personal preference being using a foreach loop.

For example, this will echo each error message in the array on a new line:

foreach ($errors as $error)
{
    echo "<br />Error: " . $error;
}

Upvotes: 5

Related Questions