PHP: 루프의 모든 N번째 반복을 어떻게 결정합니까?
저는 XML을 통해 3회 게시할 때마다 이미지를 반향하고 싶었습니다. 여기 제 코드가 있습니다.
<?php
// URL of the XML feed.
$feed = 'test.xml';
// How many items do we want to display?
//$display = 3;
// Check our XML file exists
if(!file_exists($feed)) {
die('The XML file could not be found!');
}
// First, open the XML file.
$xml = simplexml_load_file($feed);
// Set the counter for counting how many items we've displayed.
$counter = 0;
// Start the loop to display each item.
foreach($xml->post as $post) {
echo '
<div style="float:left; width: 180px; margin-top:20px; margin-bottom:10px;">
image file</a> <div class="design-sample-txt">'. $post->author.'</div></div>
';
// Increase the counter by one.
$counter++;
// Check to display all the items we want to.
if($counter >= 3) {
echo 'image file';
}
//if($counter == $display) {
// Yes. End the loop.
// break;
//}
// No. Continue.
}
?>
여기 샘플이 있습니다. 처음 3개가 맞았지만 지금은 idgc.ca/web-design-samples-testing.php 을 루프하지 않습니다.
가장 쉬운 방법은 계수 분할 연산자를 사용하는 것입니다.
if ($counter % 3 == 0) {
echo 'image file';
}
작동 원리: 모듈러스 분할은 나머지를 반환합니다.짝수 배수일 때 나머지는 항상 0입니다.
한 가지 단점이 있습니다.0 % 3
0과 같습니다.카운터가 0에서 시작하면 예기치 않은 결과가 발생할 수 있습니다.
@Powerlord의 대답에서 벗어나면,
"한 가지 캐치가 있습니다. 0% 3은 0과 같습니다.카운터가 0에서 시작할 경우 예상치 못한 결과가 발생할 수 있습니다."
카운터를 0(어레이, 쿼리)에서 시작할 수 있지만 오프셋할 수 있습니다.
if (($counter + 1) % 3 == 0) {
echo 'image file';
}
PHP 설명서에 나와 있는 모듈로 산술 연산을 사용합니다.
예.
$x = 3;
for($i=0; $i<10; $i++)
{
if($i % $x == 0)
{
// display image
}
}
계수 계산에 대한 자세한 내용을 보려면 여기를 클릭하십시오.
게시물 3개마다?
if($counter % 3 == 0){
echo IMAGE;
}
또한 모듈러스 없이도 할 수 있습니다.카운터가 일치할 때 재설정하면 됩니다.
if($counter == 2) { // matches every 3 iterations
echo 'image-file';
$counter = 0;
}
다음은 어떻습니까: if(($counter % $display) == 0)
저는 이 상태 업데이트를 사용하여 1000번 반복할 때마다 "+" 문자를 표시하고 있으며, 잘 작동하는 것 같습니다.
if ($ucounter % 1000 == 0) { echo '+'; }
첫 번째 위치에서는 작동하지 않으므로 더 나은 솔루션은 다음과 같습니다.
if ($counter != 0 && $counter % 3 == 0) {
echo 'image file';
}
직접 확인해 보세요.저는 4번째 요소마다 클래스를 추가하는 것을 테스트했습니다.
언급URL : https://stackoverflow.com/questions/936242/php-how-do-you-determine-every-nth-iteration-of-a-loop
'itsource' 카테고리의 다른 글
sp_addlinked server를 사용하여 서버를 추가하려면 다음과 같이 하십시오. (0) | 2023.08.05 |
---|---|
숫자에 쉼표를 빠르게 추가하는 방법은 무엇입니까? (0) | 2023.08.05 |
세션.지우기() vs.세션.모두 제거() (0) | 2023.08.05 |
파이썬의 구문에 새로운 문을 추가할 수 있습니까? (0) | 2023.08.05 |
C는 포인터가 참조되지 않은 상태에서 포인터가 경계를 벗어났는지 확인합니까? (0) | 2023.08.05 |