这是我的阵列:
$array = array(
'name' => $burcname . ' Günlük yorumum',
'link' => 'http://apps.facebook.com/gunlukburcpaylas/sonuc.php?burc='. $burc,
'description' => $burcname . ' Günlük yorumu. Sizde her gün profilinizde günlük burç yorumunuz için uygulamaya katılın..',
'message' => $aciklama,
'picture' => $picture
);
iconv为:$example = iconv('UTF-8','ISO-8859-9',$array);
但这是阵列。并且不工作。我能做什么?
答案 0 :(得分:9)
您需要迭代数组内容,或使用像array_walk
这样的函数。
Foreach循环(未经测试)
foreach(array_keys($array) as $key){
$array[$key] = iconv('UTF-8','ISO-8859-9', $array[$key]);
}
您需要在此示例中使用array_keys
的原因是,不会保留对foreach
进行foreach($array as $key => $value)
或foreach($array as $value)
次修改的标准$value
循环
使用array_walk
(未经测试)
function convert(&$value, $key){
$value = iconv('UTF-8','ISO-8859-9', $value);
}
array_walk($array, 'convert');
如果您使用的是PHP> 5.3然后你可以使用lambda函数。
答案 1 :(得分:4)
array_walk_deep函数(已测试)
$array = array("a",
array("b",
array("c",
"d"
)
)
);
function array_walk_deep(&$items,$func){
foreach ($items as &$item) {
if(is_array($item))
array_walk_deep($item,$func);
else
$item = $func($item);
}
}
array_walk_deep($array, 'strtoupper');
print_r($array);
答案 2 :(得分:3)
另一种解决方案是通过引用而不是值返回foreach的结果:
foreach( $array as &$value ) {
$value = iconv( 'UTF-8','ISO-8859-9', $value );
}
值变量前面的'& '允许您使用实际的数组值而不是副本。 :)