Декодирование пары имя/значение


У меня этот код в класс, делясь собственным статическим массивом данных. Внутренне он закодирован, но мне нужен итератор для цикла foreach петли, чтобы показать декодированных значений.

Есть родная функция обработки массивов, которая можете переназначить ключей и значений с помощью функции обратного вызова?

public function getIterator( )
{
  $arr = array();
  foreach ( self::$data as $encName => $encValue )
  {
    $name = $this->decode( $encName );
    $value = $this->decode( $encValue );
    $arr[$name] = $value;
  }
  return new ArrayIterator( $arr );
}


521
3
задан 10 марта 2011 в 05:03 Источник Поделиться
Комментарии
1 ответ

Реализует итератор - это путь, на мой взгляд. Что касается вашего вопроса, использование array_map позволит вам расшифровать значения, а не ключи. Но вы можете совмещать с другими операциями, такими, чтобы получить желаемый результат.

public function decodeArray($array) {
$decode = array($this, 'decode');
return array_combine(
array_map(array_keys($array), $decode),
array_map(array_values($array), $decode)
);
}

6
ответ дан 11 марта 2011 в 02:03 Источник Поделиться