2017-10-13 5 views
1

나는 방법이 있습니다 array의 값foreach가 laravel에서 하나의 값만 인쇄하는 이유는 무엇입니까?

public function winnerDetails() 
{  
    $winners = DB::table('winners')->get(); 
    //dd($winners); 
    foreach ($winners as $winner) { 
     $qrMainId = $winner->qrdetails_id; 
    } 
    dd($qrMainId); 
} 

dd($winners); 수익을하지만 난 foreach의 반환 한 값을 사용하는 경우. foreach 루프를 사용하여 누가 가치를 반환 할 수 있습니까?

dd($winners) 출력 :

enter image description here

dd($qrMainId); 리턴 한 값 44. 그러나 배열 35의 다른 값을 반환해야합니다. 미리 감사드립니다. 당신은 키의 배열을 매핑 뽑은 방법을 사용하십시오 Laravel 방식으로이 작업을 수행하려면

+3

각 'foreach()'루프에서'$ qrMainId'의 값을 덮어 쓰고 있습니다. 모든 값을 원하면 값을 배열에 저장하거나 문자열 값을 연결해야합니다. – Sean

답변

1

는 값을 사용

$qrMainId=''; 
    foreach ($winners as $winner) { 
    $qrMainId.= $winner->qrdetails_id; 
+0

난 그냥 배열이 아니라 값을 원한다. 그것은 배열을 반환합니다. –

+0

'dd ($ qrMainId);로 인쇄 할 때'$ qrMainId'가 반환되지 않습니다. –

+0

반환 배열이 없습니다. 나는이 값을 원한다. https://prnt.sc/gx4exu –

0

를 들어 ID의 사용

foreach ($winners as $winner) { 
    $qrMainId[]= $winner->qrdetails_id; 

의 배열을 얻으려면 당신이 원하는 것

<?php 
public function winnerDetails() 
{  
    $winnersId = DB::table('winners')->get()->pluck('qrdetails_id'); 
    dd($winnersId); 
} 
+0

나는 알지만 배열로 반환됩니다. 하지만 나는 가치관을 원해. –

+0

Laravel Collection을 의미합니까? – OsDev

+0

예 laravel collection https://prnt.sc/gx4exu를 의미합니다. –

0

나는 여기 당신이 Laravel의 힘을 이용하지 않는다고 생각한다. 분명히, 나는 당신이 무엇을하려고하는지 알지 못하지만, 여기에 몇 가지 조언이 있습니다.

승자 테이블에 model을 작성해야합니다. 이제 Laravel 반환 컬렉션에서 모델을 사용하고 있습니다. 현재 사용중인 DB 외관과 마찬가지입니다. 이제 Collection 클래스에는 pluck

과 같은 유용한 헬퍼가 많이 포함되어 있습니다.이 시점에서이 항목은 Winner::all()->pluck('id')처럼 쉽게되며, 이드의 배열을 얻게됩니다.

그리고 당신은 구분하거나 implode

을 사용할 수 있습니다 그리고 당신은 Winner::all()->implode('id',',');

0

$ qrMainId 변수가 아닌 배열 얻을 것 같은 것을 쉼표를 얻을하려는 경우.

매 루프마다 foreach에서 수정됩니다.

그래서 코드는 항상 배열의 마지막 요소를 갖습니다.

$qrMainId[] = $winner->qrdetails_id; 

같은 값을 수집하기 위해 배열을 사용하거나 직접 원하는 필드를 선택 SQL.