int(83) ["product_id"]-6ren">
gpt4 book ai didi

php迭代一个关联数组

转载 作者:行者123 更新时间:2023-11-29 02:49:38 26 4
gpt4 key购买 nike

我有以下数组:

array(5) {
[83]=>
object(stdClass)#39 (17) {
["id"]=>
int(83)
["product_id"]=>
int(15)
["area_id"]=>
int(2)
["termtype_id"]=>
int(40)
["name"]=>
string(23) "XXXXXX"
}
[89]=>
object(stdClass)#398 (17) {
["id"]=>
int(89)
["product_id"]=>
int(15)
["area_id"]=>
int(2)
["termtype_id"]=>
int(40)
["name"]=>
string(23) "YYYYY"
}
[102]=>
object(stdClass)#394 (17) {
["id"]=>
int(102)
["product_id"]=>
int(23)
["area_id"]=>
int(2)
["termtype_id"]=>
int(40)
["name"]=>
string(23) "ZZZZZ"
}
[104]=>
object(stdClass)#397 (17) {
["id"]=>
int(104)
["product_id"]=>
int(23)
["area_id"]=>
int(2)
["termtype_id"]=>
int(40)
["name"]=>
string(23) "AAAAA"
}
[107]=>
object(stdClass)#399 (17) {
["id"]=>
int(107)
["product_id"]=>
int(23)
["area_id"]=>
int(2)
["termtype_id"]=>
int(40)
["name"]=>
string(23) "KKKK"
}
}

上述数组是从 sql 查询生成的,并使用以下函数迭代:

 public function keyArray($arr) {
$result = [];
foreach($arr as $element) {
$result[$element->id] = $element;
}
return $result;
}

我是否可以迭代上述 ARRAY 并获取与 product_id 相关的所有数据?

结果如下:

array(2){
[83]=>
object(stdClass)#39 (17) {
["id"]=>
int(83)
["product_id"]=>
int(15)
["area_id"]=>
int(2)
["termtype_id"]=>
int(40)
["name"]=>
string(23) "XXXXXX"
}
[89]=>
object(stdClass)#398 (17) {
["id"]=>
int(89)
["product_id"]=>
int(15)
["area_id"]=>
int(2)
["termtype_id"]=>
int(40)
["name"]=>
string(23) "YYYYY"
}
}

如有任何帮助,我们将不胜感激?

最佳答案

您可以使用array_filter 函数:

public function keyArray(array $data, $productId) {
return array_filter($data, function($element) use($productId) {
return $element->product_id == $product_id;
})
}

它返回仅包含 product_id 等于搜索值的对象的数组。

关于php迭代一个关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37562094/

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