я хочу использовать функцию iconv для массива? - PullRequest
1 голос
/ 04 августа 2011

это мой массив:

$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 as: $example = iconv('UTF-8','ISO-8859-9',$array);

Но это массив. и не работает. Что я могу сделать?

Ответы [ 3 ]

9 голосов
/ 04 августа 2011

Вам нужно будет перебрать содержимое массива или использовать функцию типа array_walk.

цикл по каждому элементу (не проверено)

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, тогда вы можете использовать лямбда-функцию.

4 голосов
/ 25 января 2012

Функция 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);
3 голосов
/ 28 ноября 2011

Другое решение - возвращать результаты из foreach по ссылке, а не по значению:

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

' & ' перед переменной value позволяет вам использовать фактическое значение массива вместо копии. :)

...