PHP manipulating multidimensional array values

Posted by Joker on Stack Overflow See other posts from Stack Overflow or by Joker
Published on 2011-01-02T06:22:44Z Indexed on 2011/01/02 6:53 UTC
Read the original article Hit count: 308

I have a result set as an array from a database that looks like:

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"
    )
)

How would I apply a function to replace the values of an array only on the array key with b? Normally I would just rebuild a new array with a foreach loop and apply the function if the array key is b, but I'm not sure if it's the best way. I've tried taking a look at many array functions and it seemed like array_walk_recursive is something I might use, but I didn't have luck in getting it to do what I want. If I'm not describing it well enough, basically I want to be able to do as the code below does:

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

Should I stick with that, or is there a better way?

© Stack Overflow or respective owner

Related posts about php

Related posts about multidimensional-array