Reputation: 1766
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
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
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