2015-04-29 109 views
3

我有这样的阵列json_encode数组特殊字符

array (size=3) 
    0 => 
    array (size=4) 
     'lat' => string 'qqq' (length=11) 
     'lng' => string 'qqq' (length=11) 
     'housenumber' => string 'xxx' (length=3) 
     'street' => string 'José Ellauri' (length=12) 
    1 => 
    array (size=4) 
     'lat' => string 'qqq' (length=11) 
     'lng' => string 'qqq' (length=11) 
     'housenumber' => string 'xxx' (length=4) 
     'street' => string 'Francisco Solano García' (length=23) 
    2 => 
    array (size=4) 
     'lat' => string 'qqq' (length=11) 
     'lng' => string 'qqq' (length=11) 
     'housenumber' => string 'xxx' (length=3) 
     'street' => string 'Ingeniero Carlos María Maggiolo' (length=31) 

我想json_encode数组,但既然有特殊字符,我发现我需要$toReturn = array_map('utf8_encode', $toReturn);但我发现了一个错误。我的代码如下。

$toReturn = array_map('utf8_encode', $toReturn); 
echo json_encode($toReturn); 

我的页面出现这个错误。

警告(!):函数utf8_encode()预计参数1是字符串,在C给定阵列 :\瓦帕\ WWW \ RESH \ backend.php第39行上

回答

3

这是因为happning array_map()会传递包含数组的数据。试用 -

$toReturn = array_map('encode_all_strings', $toReturn); 

function encode_all_strings($arr) { 
    foreach($arr as $key => $value) { 
     $arr[$key] = utf8_encode($value); 
    } 
    return $arr; 
} 
+0

非常感谢!这工作! – Eddie