PHP将数组与std类组合在一起

时间:2010-07-30 21:21:47

标签: php arrays class 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 
        ) 
 }  

这是数组,它有与之关联的std类。我想要做的是将所有“cat”名称组合成一个数组变量。

我想将$ categories作为数组,将所有这些“cat”作为数组值。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

array_map($a, function(stdClass $o) { return $o->cat; });

答案 1 :(得分:1)

一种简单的方法就是遍历数组,获取所需的值。还有其他更好的方法,但我喜欢保持简单。

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

当然,如果并非所有数组项都是该对象,那么检查cat属性是否存在(并且$objstdClass!)可能是值得的。

答案 2 :(得分:0)

只需循环并创建一个新数组......

<?php
$newArray = array();

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

var_dump($newArray);