PHP, управляющий значениями многомерного массива

У меня есть набор результатов в виде массива из базы данных, который выглядит так:

array (
    0 => array (
        "a" => "something"
        "b" => "something"
        "c" => "something"
    )
    1 => array (
        "a" => "something"
        "b" => "something"
        "c" => "something"
    )
    2 => array (
        "a" => "something"
        "b" => "something"
        "c" => "something"
    )
)

Как применить функцию для замены значений массива только в ключе массива на b? Обычно я просто перестраиваю новый массив с помощью цикла foreach и применяю функцию, если ключ массива равен b, но я не уверен, что это лучший способ. Я пробовал взглянуть на многие функции массива, и мне показалось, что я мог бы использовать array_walk_recursive, но мне не удалось заставить его делать то, что я хочу. Если я недостаточно хорошо это описываю, в основном я хочу иметь возможность поступать так, как это делает код ниже:

$arr = array();
foreach ($result as $key => $value)
{
    foreach ($value as $key2 => $value2)
    {
        $arr[$key][$key2] = ($key2 == 'b' ? $this->_my_method($value2) : $value2);
    }    
}

Следует ли мне придерживаться этого или есть способ лучше?

5
задан gobernador 11 June 2012 в 22:42
поделиться