1

これは私の配列です:

$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);

しかし、これは配列です。そして働かない。私に何ができる?

4

3 に答える 3

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 を使用している場合は、代わりにラムダ関数を使用できます。

于 2011-08-04T08:13:44.343 に答える
5

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);
于 2012-01-25T02:39:17.583 に答える
3

別の解決策は、値ではなく参照によって foreach から結果を返すことです。

foreach( $array as &$value ) {
  $value = iconv( 'UTF-8','ISO-8859-9', $value );
}

値変数の前の ' & ' を使用すると、コピーの代わりに実際の配列値を使用できます。:)

于 2011-11-28T19:47:55.287 に答える