我有類對象的數組:更多聲明PHP:陣列轉換
class Foo
{
public $A;
public $B;
public $C;
}
我需要Ç字段的新的數組。有沒有一種方法來轉換數組沒有顯式循環?恨C#之後。
// Explicit conversion:
foreach ($arr as $item)
{
$Cs[] = $item->C;
}
問候,
我有類對象的數組:更多聲明PHP:陣列轉換
class Foo
{
public $A;
public $B;
public $C;
}
我需要Ç字段的新的數組。有沒有一種方法來轉換數組沒有顯式循環?恨C#之後。
// Explicit conversion:
foreach ($arr as $item)
{
$Cs[] = $item->C;
}
問候,
$Cs = array_map(function($item) {
return $item->C;
}, $arr);
僅適用於PHP 5.3 + – JvdBerg
在PHP <5.3,你可以使用命名函數array_map(「函數名」 ,$ arr); –
或'create_function()',但在我看來,PHP5.3應該是現在的主流。 – KingCrunch
我相信你可以使用get_object_vars
。
$arr = get_object_vars(new Foo());
var_dump($arr); // should give Array(3) { "A"=>NULL, "B"=>NULL, "C"=>NULL }
BTW:在C#中,你可以使用LINQ,這樣你就不必使用顯式循環.. – Philipp