3
두 개의 개체 배열이 있습니다.PHP : 개체 배열 값을 다른 정렬되지 않은 개체 배열로 업데이트하십시오.
먼저 배열 $x
:
[0] => stdClass Object
(
[id] => 54
[value] => test54
[something] => testtest54
)
[1] => stdClass Object
(
[id] => 21
[value] => test21
[something] => testtest21
)
...
두 번째 배열 $y
: 내 첫 번째 배열 같은 id
가 두 번째 어레이 ($y
) 필드의 value
을 가져 $x
을 업데이트 할
[0] => stdClass Object
(
[id] => 21
[value] => test21_new_value
)
[1] => stdClass Object
(
[id] => 54
[value] => test54_new_value
)
...
, 갖고 싶은 :
[0] => stdClass Object
(
[id] => 54
[value] => test54_new_value
[something] => testtest54
)
[1] => stdClass Object
(
[id] => 21
[value] => test21_new_value
[something] => testtest21
)
...
나는 이런 식으로 뭔가 할 수 있습니다
foreach($x as $k => $v) {
foreach($y as $k2 => $v2) {
if ($v->id === $v2->id) $x[$k]->value = $v2->value;
}
}
을하지만 (각 $x
에 대한 배열 $y
에 걸어 가지고 있기 때문에 나는이 싫어 내가 $y
에 $x
100 개 항목 100 개 항목이있는 경우, 그것은 100 * 100 번 루프). 더 효율적인, 우아하고 최적화 된 방법이 있다고 생각합니다.하지만 어떻게 해야할지 모르겠습니다. (이 특정 문제에 대한 정확한 응답을 찾지 못했기 때문에 여기에서 물어 봅니다.)
확인 덕분에 많은 : 값이
$x
에 있는지 당신이 (NULL
로 번역 할 것 "값 없음")을 확인 할 수 있는지! 사실, 객체 배열에는'&'가 필요하지 않습니다. $ v는 이미 객체에 대한 참조입니다 (하나의 루프로 시도했지만 어쩌면 틀렸거나 이해할 수 없습니다). –@ rap-2-h 맞습니다. 객체는 항상 참조로 전달됩니다 (잊어 버렸습니다 - 늦은 시간입니다!) :) – h2ooooooo