2012-01-30 83 views
1

我有一个var,包含一个对象数组。 $object如何在php中编辑对象数组中的行?

Array 
(
[0] => First_Model Object 
    (
     [_id:protected] => 988198 
     [_status:protected] => some string here 
     [_user_id:protected] => 18289 
    ) 

[1] => Second_Model Object 
    (
     [_id:protected] => 566198 
     [_status:protected] => some string here 
     [_user_id:protected] => 18290 
    ) 
.... 

,如果我这样做:

<?php foreach($object as $row): ?> 
<?php echo $row->status(); ?> 
<?php endforeach: ?> 

我得到:some string here

我想要做的是编辑$row->status(),也许还可以利用ucwords或东西在这个字符串,并将其放置回到$object这样,当我做循环我得到改变的结果。

我可以改变foreach循环内的结果,但我希望我的代码干净。

,所以我要抓住$object->status用它做什么,然后把它放回$object然后生病了修改后的结果..

如何对象数组里面修改后的字符串放置任何想法?

感谢

+0

为什么使用一个'foreach'循环不清洁*? – webbiedave 2012-01-30 22:47:24

+0

@webbiedave理论是:当你使用专门的函数(比如'array_walk')时,它可能在并行线程中工作。我猜php为通过这个函数调用函数提供了某种最优化(至少回调函数是从C源调用的('array_walk'在C中实现),而不是通过解释(较慢)的代码)。 – Vyktor 2012-01-30 23:02:37

+1

@Vyktor:使用'array_walk' [几乎总是慢](http://stackoverflow.com/questions/8436261/php-add-element-to-every-sub-array-of-multi-dimension-array/8436642 #8436642)而不仅仅是“foreach”。未来的并行线程?在PHP可以做到的时候,我们都会有飞行的汽车:) – webbiedave 2012-01-30 23:12:06

回答

1

你需要array_walk,所有必要的例子是在文档:)

我也想创建界面,这将宣告方法:setStatusgetStatus和使用

if(!($item1 instanceof YourInterface)){ 
    throw new Exception(...); 
} 
相关问题