我从函数
返回了以下对象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',
)),
))
如果我将此类型转换为数组,我会得到以下内容
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',
)),
)
问题是,我还需要将内部对象类型转换为数组。我可以通过使用foreach
循环来执行此操作,然后键入将每个值转换为数组并构建一个新数组,如
foreach ($a as $b) {
$c[] = (array) $b;
}
?><pre><?php var_dump($c); ?></pre><?php
它确实给了我想要的东西
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"
}
}
我的PHP知识仍然非常有限,我需要知道的是,还有另一种更短的更好的方法来实现这一点,或者这是唯一的方法。
我不能不幸地改变了函数的输出。这是Wordpress中的一个函数,它只返回一个对象对象,并且没有返回值数组数组的选项
我需要搜索特定的term_id
并返回其位置。同样,我可以使用foreach
循环执行此操作,但PHP 5.5 +具有函数array_column
,您可以使用array_search
来搜索特定值(在本例中为{{1}在多维数组中并返回该特定数组的键。
答案 0 :(得分:2)
我使用json_encode
和json_decode
。
$json = json_encode($object);
$array = json_decode($json, true);
或快速进行:
$array = json_decode(json_encode($object), true);
它非常快,适用于所有维度。