结合数组和std类的PHP

结合数组和std类的PHP,php,arrays,class,std,Php,Arrays,Class,Std,这是我想要的,但我不知道怎么做 $a是这个数组 PHP代码: Array ( [0] => stdClass Object ( [id] => i1 [cat] => Test1 ) [1] => stdClass Object ( [id] => i2 [cat] => Test

这是我想要的,但我不知道怎么做

$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”作为数组值


我该怎么做呢?

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

<?php
$newArray = array();

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

var_dump($newArray);

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

<?php
$newArray = array();

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

var_dump($newArray);

一种简单的方法就是在数组上循环,获取所需的值。还有其他更奇特的方法可以做到这一点,但我喜欢保持简单

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

当然,如果不是所有数组项都是该对象,那么可能需要检查
cat
属性是否存在(并且
$obj
stdClass
!)。

一个简单的方法就是在数组上循环,获取所需的值。还有其他更奇特的方法可以做到这一点,但我喜欢保持简单

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

当然,如果不是所有数组项都是该对象,那么可能需要检查
cat
属性是否存在(并且
$obj
stdClass
!)。

$categories=array\u map(…);旁注:像
function(stdClass$o){…}
这样的匿名函数在5.3之前的php版本中不可用。请参见$categories=array_map(…);旁注:像
function(stdClass$o){…}
这样的匿名函数在5.3之前的php版本中不可用。看见