2010-06-21 4 views
0

내가 가지고있는 다음 foreach는 내가 모든 1, 4, 7, 10 일에 '제'로 $ 클래스 1을 설정하려는는 어떻게 3byX 그리드

foreach($array as $v) 
{ 
    if(SOME LOGIC HERE) $class = "first"; 
    if(SOME LOGIC HERE) $class2 = "third"; 
     print '<span class="$class $class2">$v["name"]</span>'; 
} 

(3N에서 1, 3 열을 찾을 수 있습니까 - 2) $ Class2의이, 3, 6, 9에 대한 '세 번째'12로 설정해야

답변

0

는 나머지 연산자를 사용

for ($i=0; $i<count($array); $i++) 
    { 
    if (($i-1)%3 == 0) 
     $class = "first"; 
    else if ($i % 3 == 0) 
     $class = "third"; 

    echo '<span class="'.$class.'">blablabla</span> 
    } 
+0

작동하지 않습니다! 그냥 그것을 시도 ... 클래스를 제공하는 3 요소의 배열로; 셋째, 첫번째, 첫번째. 아 .. 그리고 '; echo – Phliplip

+0

@Phliplip : Ok, 질문을 잘못 읽은 것 같습니다. 첫 번째 요소가 아니라 요소 1에 대해 이야기하고 있다고 생각했습니다. PHP 인덱스는 0이 아닌 1부터 시작합니다. 어쨌든, 첫 번째, 두 번째, 세 번째 요소를 얻기 위해'$ i % 3','($ i-1) % 3','($ i-2) % 3'을 사용해야합니다. 필요한 것. (미안하지만 그것은 당신이 원하는 정확한 출력을 귀하의 질문에서 superclear 아니에요) – nico

+0

FYI : 내 질문에 :) – Phliplip

2
foreach($array as $k => $v) 
{ 
    if (($k % 3) == 0) { $class = "first"; } 
    elseif(($k % 3) == 2) { $class = "third"; } 
    else { $class = "second"; } 

    print '<span class="$class $class2">$v["name"]</span>'; 
} 
+0

이것은 작동합니다! 그러나 열쇠가 숫자가 아닌 경우는 어떨까요? – Phliplip

+0

키가 숫자가 아닌 경우 $ k % 3은 $ k를 숫자 0으로 캐스팅합니다. 따라서 $ k % 3은 항상 0 % 3입니다. 그러나 대부분의 경우 묻는 사람들은 이 질문은 정수 키 값 –

0
<?php 
$n = 0; 
foreach($array as $v) 
{ 
    $n++; 
    switch($n) { 
     case 1: 
      $class = 'first'; 
      break; 
     case 3: 
      $class = 'third'; 
      $n = 0; 
      break; 
     default: 
      $class = ''; 
      break; 
    } 
    print '<span class="' . $class . '">' . $v['name'] . '</span>'; 
} 
?> 

편집 : 코드가 업데이트되어 인쇄가 루프 안쪽으로 가야하고 :) 코드가 정리되었습니다.

+0

Btw로 작업하고 있습니다. $ class와 $ class2가 실제로 필요하지 않다면 $ class2를 $ class로 이름을 바꾸고 span에서 $ class2를 제거하면됩니다. – Phliplip