2011-02-01 2 views
-2

나는 너무 붙어있어, 2 분이 있으면 누군가 도와주세요.루프의 배열에서 다음으로 이동

나는

foreach ($result as $i => $item) { 

     $values_array = explode("\n",$get_widths); // outputs Array ([0] => 120 [1] => 180) 
     // here I need to echo the value from the array but only ONCE 
} 

문제 같은 세션에서 뭔가 값을 가져 foreach 문을이 때마다 반복됩니다 2 개 이상의 항목 및 배열 출력에 의해 사용되는 것입니다, 그래서 2 개 항목 만약 내가 를 얻을 수 어레이 ([0] => 120 [1] => 180) 배열 ([0] => 120 [1] => 180) 또는 실제 코드 대신

120 180

참조 여기

<?php 
foreach ($list as $i => &$item){ 
    $i=0; 
    $is_group     = $item_params->get('is_group');  
    $group_widths    = $item_params->get('group_widths');  
    $group_widths_array   = explode("\n",$group_widths); 

    if($is_group == 1){ 

     echo $group_widths_array[$i]; 
    } 



} 
?> 

주의 사항 foreach 외부로 이동할 수 없습니다. 감사합니다.

+0

나는 foreach를 제거하고'for'를 사용해야한다고 생각한다. –

+0

나는 할 수 없다. foreach를 사용해야한다. – Benn

+0

왜? 이 숙제입니까, 징계입니까? – Andrew

답변

0

...

당신은 $i에 키와 $item에 값을 할당, 배열 반복되지만 다음 $group_widths_array[0]을 울리는 0으로 $i 설정 귀하의 조건이 충족 될 때마다 $item 당신은 전혀 사용하지 마십시오 ...

그럴 수 있습니까?

어쨌든 출력이 반복되는 이유는 매번 $group_widths_array[0]을 출력하고 모든 반복에서 $is_group이 동일하다는 것입니다.

+0

맞습니다. 처음 값이 0 일 때마다 무엇을 $로 설정해야합니까? – Benn

+0

@Benn 아무것도 foreach 문에 설정되어 있습니다. – jeroen

1

플래그 변수를 사용하여 처리 여부를 결정하기 만하면됩니다. 나는 완전히이 루프의 요점입니다

$values_array = explode("\n",$get_widths); 
if (!isset($we_have_outputted)) { 
    echo '<pre>'. print_r($values_array, true) .'</pre>'; 
    $we_have_outputted = true; 
} 
+0

이것은 가까웠지만 첫 번째 값만 얻었습니다. 단 120도, 전체 배열이 한 번만 필요합니다 – Benn