我对我正在陈述Array to string conversion
我感到困惑的原因是我试图做到这一点,使用implode
将数组转换为字符串,根据手册应该允许我将数组转换为串。那么为什么我会收到错误?
var $matches
是一个数组。 $error_c
是我想要存储字符串的var。
print_r($matches); // prints the array correctly
$error_c = implode(',', $matches);
echo $error_c;
只输出array
并给出:
Notice: Array to string conversion in ...
手册说明implode — Join array elements with a string
所以当我尝试这样做时为什么会出错?
编辑:这是我从$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 ) )
答案 0 :(得分:29)
你有一个数组数组......试试这个:
$error_c = implode(',', $matches[0]);
答案 1 :(得分:8)
$error_c = implode(',', $matches[0]);
echo $error_c;
因为您的array
包含arrays
答案 2 :(得分:1)
那样做:
print_r($matches); // prints the array correctly
$error_c = implode(',', $matches[0]);
echo $error_c;
答案 3 :(得分:0)
要将数组中的任何数据放入字符串中,请尝试使用
function whatever_to_string($in){
ob_start();
print_r($in);
return ob_get_clean();
}
'ob_ *'函数控制输出缓冲区。
答案 4 :(得分:0)
您可以将array_values()
用于数组数组
例如implode (",", array_values($array))
答案 5 :(得分:0)
该问题是由于您在二维的implode
上调用了Array
。
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
// ...
)
)
等效于
[["C", "E", "R", "R", "O", "R", "C", "O", "N", "..." ]]
执行内爆之前,您应该做的是将数组展平,然后可以使用展平的数组调用implode
,或者仅对主数组中的第一项(即数组)调用内爆。 / p>
这里是一个问题,可为扁平化阵列提供指导 How to Flatten a Multidimensional Array?
使用允许展平数组的功能,您可以像这样执行调用
implode(flatten($array_of_data), $matches);
无论$matches
数组中有多少项目,都不需要访问第一项,flatten
函数将返回一个一维数组,您可以在其上调用implode