2010-07-30 57 views
0

這是我想要的,但無法弄清楚如何。PHP將數組與std類組合

$ a是這個數組 PHP代碼:

Array 
( 
    [0] => stdClass Object 
     ( 
      [id] => i1 
      [cat] => Test1 
     ) 

    [1] => stdClass Object 
     ( 
      [id] => i2 
      [cat] => Test2 
     ) 

    [2] => stdClass Object 
     ( 
      [id] => i3 
      [cat] => Test3 
     ) 

    [3] => stdClass Object 
     ( 
      [id] => i4 
      [cat] => Test4 
     ) 
} 

這是陣列,它具有與它相關的那些性病類。我想要做的是將所有的「貓」名稱組合成一個數組變量。

我想使所有這些「貓」作爲數組值的$類別的數組。

我該怎麼做?

回答

1

一個簡單的辦法就是循環數組過來,抓住你想要的值。還有其他更奇特的做法,但我想保持簡單。

$categories = array(); 
foreach ($a as $obj) { 
    $categories[] = $obj->cat; 
} 

當然,如果不是所有的數組中元素是對象,那麼它可能是值得的檢查cat屬性存在(這$objstdClass!)。

0

通過簡單的循環,並創建一個新的數組...

<?php 
$newArray = array(); 

foreach($a as $cat) { 
    $newArray[$cat->id] = $cat->cat; 
} 

var_dump($newArray); 
3
array_map($a, function(stdClass $o) { return $o->cat; }); 
+0

$ categories = array_map(...); – ebynum 2010-07-30 21:34:01

+0

注意:在5.3之前的PHP版本中,像'function(stdClass $ o){...}'這樣的匿名函數是不可用的。請參閱http://docs.php.net/closures – VolkerK 2010-07-30 21:37:28