Aleksandar
Aleksandar

Reputation: 1766

php array echo specific key value

I wrote a function to echo the value from each key name out of an array. Is there a nicer, shorter way to write following code?

foreach ($prod_cats as $k1 ){
    foreach ($k1 as $k2 => $value){
        if ($k2 == 'name'){
            echo $value;
        }
    }
}

Here is an example on how my array looks like:

Array
(
    [0] => stdClass Object
    (
        [term_id] => 11
        [name] => example1
        [slug] => example1
    )

    [1] => stdClass Object
    (
        [term_id] => 12
        [name] => example2
        [slug] => example2
    )

    [2] => stdClass Object
    (
        [term_id] => 13
        [name] => example3
        [slug] => example3
    )
)

Upvotes: 3

Views: 10078

Answers (2)

Mahen Nakar
Mahen Nakar

Reputation: 394

if you know name keyword is fixed and available, you can avoid one more loop.

foreach ($prod_cats as $k1 ){
    echo $k1['name'];
}

Upvotes: 4

viral
viral

Reputation: 3743

Use array_walk()

array_walk($input, function($obj){ echo $obj->name; });

This can be done with array_map(), but when you are not creating a new array out of your current array, array_walk() is suggested, because, it doesn't return anything, while array_map() returns an array conatining what is returned by function passed to it as a callback.

Upvotes: 0

Related Questions