2013-07-18 3 views
0

이상한 점이 있는데, 간단 할 수도 있지만 해결책을 찾을 수 없습니다.객체가 배열 오버라이드에 푸시되었습니다.

$counter = 0; 
$autoload_view_instace = new Logic_InvoiceCostData; 

$sub_view_cost = array(); 
foreach($invoceCostData as $data) 
{ 
    $counter++; 
    $parm = $autoload_view_instace->edit_view_data($autoload_view, $data, $counter); 
    array_push($sub_view_cost, $parm); 
} 

루프는 일부 값을 가진 객체를 반환 edit_view_data 메소드를 호출 다음은 코드의 일부입니다. 객체는 이전에 추가 된 객체의 값을 변경하지 않고 각 반복에서 배열의 끝에 배치해야합니다. 그러나 각 반복 후에 배열의 모든 객체는 새로 추가 된 객체와 동일한 값을 갖습니다.

+1

try $ sub_view_cost [] = $ parm; 대신 작동하는지 확인하십시오. 그러나 PHP 매뉴얼에서주의 할 점 : array_push()를 사용하여 배열에 하나의 요소를 추가하면 $ array [] =를 사용하는 것이 더 좋다. 왜냐하면 그런 식으로 함수를 호출하는 오버 헤드가 없기 때문이다. – Satya

+0

시도하고 같은 결과. 해당 메서드의 모든 변수를 확인하고 그것이 내가 원하는 것을 반환하는 것이 좋습니다. –

+0

'foreach' 루프에서'$ parm'을'unset ($ parm)'으로 수정하지 마십시오. – Lekhnath

답변

0

분명히 array_push 구문이 정확하고 작동해야합니다. 그러나 동일한 것을 사용하면됩니다. $ sub_view_cost [] = $ parm;

$ parm이 올바른 값일 때마다 확인하십시오.

관련 문제