从数组PHP中提取[cat_ID]

时间:2014-05-07 10:35:43

标签: php arrays wordpress

我有以下数组(只是完整数组的一部分),我想提取[cat_ID]的值。

Array ([1] => stdClass Object ( [term_id] => 21 [name] => z_aflyst [slug] => z_aflyst
[term_group] => 0 [term_taxonomy_id] => 23 [taxonomy] => category 
[description] => [parent] => 0 [count] => 1 [object_id] => 7 [cat_ID] => 21 
[cat_name] => z_aflyst ))

所以我需要在这种情况下提取21。但是,如果cat_ID等于cat_name,我只想提取z_aflyst

3 个答案:

答案 0 :(得分:1)

假设你有一个对象数组:

Array (
[1] => stdClass Object 
( 
[term_id] => 21 
[name] => z_aflyst 
[slug] => z_aflyst
[term_group] => 0 
[term_taxonomy_id] => 23 
[taxonomy] => category 
[description] => 
[parent] => 0 
[count] => 1 
[object_id] => 7 
[cat_ID] => 21 
[cat_name] => z_aflyst )
)

foreach ($items as $item)
{
    if($item->cat_name == 'z_aflyst')
    {
        //do stuff
    }
}

答案 1 :(得分:0)

此示例中的数组不仅仅是一个简单数组,而是standard object。你可以利用这一点。您可以通过以下公式获得标准对象的属性:

$object->property;

在你的情况下,对象是

$object = $array[1];

或通过此公式作为数组

$array[key];
在你的情况下

获取cat_ID的值:

$object->cat_ID;

所以你的代码将是:

if ($object->cat_name == 'z_aflyst') {
     // do stuff with your cat_ID value
     echo $object->cat_ID;
}
// will echo 21 only of the cat_name has value 'z_aflyst'

答案 2 :(得分:0)

您有一个standard objects数组,可以使用箭头(对象)运算符->访问这些属性。

您可以使用array_filter()过滤掉不需要的数组元素:

// Assuming your array is called $items
$filtered = array_filter($items, function($v) {
    return $v->cat_name === 'z_aflyst';
});

之后,您可以使用array_map()“展平”数组,以便它只包含cat_ID:

$filtered = array_map(function($v) {
    return $v->cat_ID;
}, $filtered);

这将为您提供一个一维的索引数组cat_IDs。