Reputation: 641
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
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
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
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
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