I have the following object returned from a function
stdClass::__set_state(array(
0 =>
stdClass::__set_state(array(
'term_id' => '175',
'name' => 'a term',
'slug' => 'a-term',
'term_group' => '0',
'term_taxonomy_id' => '177',
'taxonomy' => 'category',
'description' => '',
'parent' => '174',
'count' => '1',
)),
1 =>
stdClass::__set_state(array(
'term_id' => '182',
'name' => 'aciform',
'slug' => 'aciform',
'term_group' => '0',
'term_taxonomy_id' => '184',
'taxonomy' => 'category',
'description' => '',
'parent' => '0',
'count' => '1',
)),
))
If I type cast this to an array, I get the following
array (
0 =>
stdClass::__set_state(array(
'term_id' => '175',
'name' => 'a term',
'slug' => 'a-term',
'term_group' => '0',
'term_taxonomy_id' => '177',
'taxonomy' => 'category',
'description' => '',
'parent' => '174',
'count' => '1',
)),
1 =>
stdClass::__set_state(array(
'term_id' => '182',
'name' => 'aciform',
'slug' => 'aciform',
'term_group' => '0',
'term_taxonomy_id' => '184',
'taxonomy' => 'category',
'description' => '',
'parent' => '0',
'count' => '1',
)),
)
The problem is, I need the inner objects to be type cast to arrays as well. I can do this by using a foreach
loop and then type casting every value to an array and build a new array out of that, something like
foreach ($a as $b) {
$c[] = (array) $b;
}
?><pre><?php var_dump($c); ?></pre><?php
which does give me what I want
array(75) {
[0]=>
array(9) {
["term_id"]=>
string(3) "175"
["name"]=>
string(6) "a term"
["slug"]=>
string(6) "a-term"
["term_group"]=>
string(1) "0"
["term_taxonomy_id"]=>
string(3) "177"
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
string(3) "174"
["count"]=>
string(1) "1"
}
[1]=>
array(9) {
["term_id"]=>
string(3) "182"
["name"]=>
string(7) "aciform"
["slug"]=>
string(7) "aciform"
["term_group"]=>
string(1) "0"
["term_taxonomy_id"]=>
string(3) "184"
["taxonomy"]=>
string(8) "category"
["description"]=>
string(0) ""
["parent"]=>
string(1) "0"
["count"]=>
string(1) "1"
}
}
My PHP knowledge are still quite limited, what I need to know is, is there another shorter better way to achieve this, or is this the only way.
EXTRA BACKGROUND
I cannot unfortunately change the output from the function. This is a function in Wordpress which only returns an object of objects and does not have an option to return an array of an array of values
I need to search for a specific
term_id
and returns its position. Again, I can use aforeach
loop do do this, but PHP 5.5 + has a functionarray_column
where you can usearray_search
to search for a specific value (in this caseterm_id
) in a multidimensional array and return the key of that specific array.