简体   繁体   中英

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

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

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM