将对象转换为数组

Mic*_*und 3 php arrays oop wordpress

我正在使用WordPress,因为我不相信它可以对对象细节进行排序,我想知道如何将我的对象转换为数组,以便排序是可能的.

任何帮助或指导将不胜感激.

我正在使用WP函数get_categories();

$ category的完整内容是:

$category->term_id
$category->name
$category->slug
$category->term_group
$category->term_taxonomy_id
$category->taxonomy
$category->description
$category->parent
$category->count
$category->cat_ID
$category->category_count
$category->category_description
$category->cat_name
$category->category_nicename
$category->category_parent
Run Code Online (Sandbox Code Playgroud)

小智 7

$array = json_decode(json_encode($object), true);
Run Code Online (Sandbox Code Playgroud)

  • 您好,您介意为其他程序员扩展一下答案吗? (2认同)

And*_*ndy 6

如果对象不是太复杂(在嵌套方面),您可以将类强制转换为数组:

$example = new StdClass();
$example->foo = 'bar';

var_dump((array) $example);
Run Code Online (Sandbox Code Playgroud)

输出:

array(1) { ["foo"]=> string(3) "bar" } 
Run Code Online (Sandbox Code Playgroud)

但是这只会转换基础级别.如果你有嵌套对象,如

$example = new StdClass();
$example->foo = 'bar';
$example->bar = new StdClass();
$example->bar->blah = 'some value';

var_dump((array) $example);
Run Code Online (Sandbox Code Playgroud)

然后只将基础对象强制转换为数组.

array(2) { 
  ["foo"]=> string(3) "bar" 
  ["bar"]=> object(stdClass)#2 (1) { 
    ["blah"]=> string(10) "some value" 
  }
} 
Run Code Online (Sandbox Code Playgroud)

为了更深入,您将不得不使用递归.有一个目的是阵列转换的一个很好的例子在这里.