gpt4 book ai didi

php - 从对象数组中提取所有 id

转载 作者:行者123 更新时间:2023-12-02 02:46:02 25 4
gpt4 key购买 nike

在 PHP 7.4 中,我有与对象的关联数组:

$array = [
1 => Class {
'id' => 1,
'call' => true,
},
5 => Class {
'id' => 5,
'call' => false,
},
7 => Class {
'id' => 7,
'call' => true,
},
]

我想提取所有 ID,如果 call属性 === true .

搜索后,我想我应该使用 array_map功能。

$ids = array_map(function($e) {
if (true === $e->call) {
return $e->id;
}
}, $array);

// Return :

array(3) {
[1]=> 1
[5]=> NULL
[7]=> 7
}

但是我有两个问题:

  1. 我不想要NULL结果
  2. 我不希望在我的新 array 中包含关联键。我想要一个新数组 ( [0=>1, 1=>7] )

我知道我可以用foreach()来做到这一点但我发现用单个 PHP 函数来完成它很有趣( array_walkarray_map ?)

最佳答案

创建一个数组,该数组是由id索引的call值,然后对其进行过滤。由于 id 是索引,因此提取 ids 的键...

$ids = array_keys(array_filter(array_column($array, "call", "id")));

print_r($ids));

Array
(
[0] => 1
[1] => 7
)

尽管我认为 foreach() 是一种更直接的方法。

关于php - 从对象数组中提取所有 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62782173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com