I 다음 어레이 가지고PHP 연관 배열을 반복
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;
}
어쨌든 I는 반복 할 수 있는가를 위의 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"
}
}
어떤 도움
가 극명하게 될 것이다 :결과 일 것이다 다음? 또한
public function keyArray($arr, $searchProductId) {
$result = [];
foreach($arr as $element) {
if($element->product_id == $searchProductId){
$result[$element->id] = $element;
}
}
return $result;
}
가능한 경우, database
수준의 결과를 필터링하는 그것의 더 나은 :
당신은 ID에 대한 중복 키 ... 논리가에 무엇인가가 ... 바깥 배열의 키는 PRODUCT_ID를 나타낸다는 것을 주목하고, 중첩 된 배열은 같은 PRODUCT_ID이있는 항목입니까? 이전 버전을 덮어 쓸 필요가 있습니까? 아니면 그냥 무시하니? – Naruto
당신은 다음과 같이 쓰고 있습니다 : 나는 그것을 바꿨다 –
'array_map (function ($ ar) {if ($ ar-> product_id == $ productID) {return $ ar;}}, $ array); 당신을 위해 .. –