gpt4 book ai didi

PHP - 如果值存在于对象数组中

转载 作者:可可西里 更新时间:2023-10-31 22:54:42 24 4
gpt4 key购买 nike

我有一个名为 $filtes 的对象数组,如下所示:

Array
(
[0] => stdClass Object
(
[title] => Type
[alias] => type
[id] => 14
[parent_id] => 9
[subs] => Array
(
[0] => stdClass Object
(
[title] => car
[alias] => car
[id] => 15
[parent_id] => 14
)

)

)

[1] => stdClass Object
(
[title] => Model
[alias] => model
[id] => 18
[parent_id] => 9
[subs] => Array
(
[0] => stdClass Object
(
[title] => XF
[alias] => xf
[id] => 19
[parent_id] => 18
)

[1] => stdClass Object
(
[title] => XJ
[alias] => xj
[id] => 20
[parent_id] => 18
)

[2] => stdClass Object
(
[title] => XK
[alias] => xk
[id] => 21
[parent_id] => 18
)

[3] => stdClass Object
(
[title] => F-TYPE
[alias] => f-type
[id] => 22
[parent_id] => 18
)

)

)

[2] => stdClass Object
(
[title] => Condition
[alias] => condition
[id] => 24
[parent_id] => 9
[subs] => Array
(
[0] => stdClass Object
(
[title] => new
[alias] => new
[id] => 24
[parent_id] => 9
)

)

)

)

检查 $filters[$i]->title 和 $filters[$i]->subs[$j]->title 中是否存在单词的最佳做法是什么。速度在此检查中非常重要。

最佳答案

创建一个简单的递归函数:

function myArrayContainsWord(array $myArray, $word) {
foreach ($myArray as $element) {
if ($element->title == $word ||
(!empty($myArray['subs']) && myArrayContainsWord($myArray['subs'], $word)) {
return true;
}
}
return false;
}

然后这样调用它:

if (myArrayContainsWord($filtes, $title)) {
...
}

关于PHP - 如果值存在于对象数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271188/

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