php排序对象的属性

use*_*107 5 php sorting object

我想对对象的属性进行排序,以便我可以按照定义的顺序循环它们.

例如:我有一个具有以下属性的对象'book':'id','title','author','date'.

现在我想循环遍历这些属性,如下所示:

foreach($book as $prop=>$val)
//do something
Run Code Online (Sandbox Code Playgroud)

现在循环的顺序必须是'title',然后是'author','date'和'id'

怎么会这样做?(我无法更改对象类中属性的顺序,因为那里没有定义任何属性,我使用'MyActiveRecord'从数据库中获取对象)

mex*_*ue1 8

不确定这是否能回答您的问题,但您可以尝试:

$properties = array('title', 'author', 'date', 'id');
foreach ($properties as $prop) {
    echo $book->$prop;
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以提取书籍的属性(而不是硬编码),并使用您的自定义顺序对它们进行排序:

$props = get_class_vars(get_class($book));
uasort($props, 'my_properties_sorting_function');
Run Code Online (Sandbox Code Playgroud)