簡體   English   中英

從數組PHP中提取[cat_ID]

[英]Extract [cat_ID] from array PHP

我有以下數組(只是完整數組的一部分),我想提取[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

給你一個對象數組:

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
    }
}

您的數組在此示例中只是一個簡單的數組,是一個標准對象 你可以利用這一點。 您可以通過以下公式獲得標准對象的屬性:

$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'

您有一組標准對象 ,可以使用箭頭(對象)運算符->訪問這些屬性。

您可以使用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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM