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'从数据库中获取对象)
不确定这是否能回答您的问题,但您可以尝试:
$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)