更具声明性的PHP:数组转换
我有一个类对象数组:更具声明性的PHP:数组转换,php,arrays,Php,Arrays,我有一个类对象数组: class Foo { public $A; public $B; public $C; } 我需要一个新的C字段数组。有没有一种方法可以在不使用显式循环的情况下转换数组?讨厌在C#之后 您好,我相信您可以使用 $Cs = array_map(function($item) { return $item->C; }, $arr); 在PHP
class Foo
{
public $A;
public $B;
public $C;
}
我需要一个新的C字段数组。有没有一种方法可以在不使用显式循环的情况下转换数组?讨厌在C#之后
您好,我相信您可以使用
$Cs = array_map(function($item) {
return $item->C;
}, $arr);
在PHP<5.3中,可以将命名函数与数组映射一起使用('function\u name',$arr);或者
create_function()
,但我认为PHP5.3应该是现在的主流。不是lambda语法,但至少不需要外部函数。谢谢。顺便说一下:在C#中,您可以使用linq,因此不必使用显式循环..是的,但是$arr是Foo的数组,而不是单个实例。此外,我还必须从As和Bs中筛选生成的数组。
$Cs = array_map(function($item) {
return $item->C;
}, $arr);
$arr = get_object_vars(new Foo());
var_dump($arr); // should give Array(3) { "A"=>NULL, "B"=>NULL, "C"=>NULL }