I’m confused about an error I am getting stating Array to string conversion
The reason I’m confused is I’m trying to do exactly that, convert an array to a string, using implode
which according to the manual should allow me to convert my array into a string. So why am I getting an error?
var $matches
is an array. $error_c
is the var I want to store the string.
print_r($matches); // prints the array correctly
$error_c = implode(',', $matches);
echo $error_c;
Outputs simply array
and gives:
Notice: Array to string conversion in ...
The manual states that implode — Join array elements with a string
so why do I get an error when I try to do it?
Edit: this is the output I get from $matches
Array ( [0] => Array ( [0] => C [1] => E [2] => R [3] => R [4] => O [5] => R [6] => C [7] => O [8] => N [9] => T [10] => A [11] => C [12] => T [13] => S [14] => U [15] => P [16] => P [17] => R [18] => E [19] => S [20] => S [21] => E [22] => D ) )
You have an array of arrays… Try this:
$error_c = implode(',', $matches[0]);
Answer:
$error_c = implode(',', $matches[0]);
echo $error_c;
because your array
contains arrays
inside
Answer:
Do that:
print_r($matches); // prints the array correctly
$error_c = implode(',', $matches[0]);
echo $error_c;
Answer:
You may use array_values()
for array of arrays
e.g. implode (",", array_values($array))
Answer:
To just put whatever data is in the array into a string, try this
function whatever_to_string($in){
ob_start();
print_r($in);
return ob_get_clean();
}
The ‘ob_*’ functions control the output buffer.