2013-12-10 1 views
-1

어떻게 각 루프에 하나의 배열을 표시 할 수 있습니까? 이 코드 예를 들어 내가 각 루프에 대한 임의의 색상 코드를 표시 할 수 있습니다,하지만 난 DESC에 의해 순서를 표시해야합니다 :정렬로 PHP 루프의 배열 값 표시

$Colors = array('111', '222', '333', '444', '555'); 

$i = 1; 

while($i <= $Limit){ 
    echo "Color Code:". $Colors[array_rand($Colors)]."<br>"; 
$i++; 
} 

을이 내 결과와 문제 :

Color Code:333 
Color Code:333 
Color Code:444 
Color Code:111 
Color Code:555 
Color Code:222 
Color Code:111 
Color Code:222 
Color Code:555 
Color Code:222 
Color Code:333 
Color Code:444 

것은 내가 보여줄 수있는 방법 결과는 다음과 같습니다 :

Color Code:111 
Color Code:222 
Color Code:333 
Color Code:444 
Color Code:555 
Color Code:111 
Color Code:222 
Color Code:333 
Color Code:444 
Color Code:555 
Color Code:111 
Color Code:222 
... 
+2

이 코드는 어떤 기능을합니까? –

+0

순차 배열에서 임의의 항목을 선택하고 순차적으로 나열하고 싶습니까? – AbraCadaver

+0

무작위가 아니며 연속적으로 – Alireza

답변

1
while($i <= $Limit){ 
    echo "Color Code:". $input[$i % count($input)]."<br>"; 
    $i++; 
} 

또는 대체 $input.

+0

@MaciejSz를 고쳤습니다. 루프 밖에서'count'를 움직일 수있었습니다; 기술적으로 더 효율적이지만 20 개 항목에 대해 눈에 띄지 않을 것이라고 생각합니다. –

+0

2 년 후, 주목할 만하게 배열이 2M 항목으로 증가 할 때까지 ... 나는 단지 말하고있다 : 그것은 자동적이어야한다. –

+0

@Explosion 약은 내 친구에게 고마워. – Alireza

0

이 트릭을해야합니다! 변수가 실제로 소위에 따라 $Colors에 대한

for($i = 0; $i < sizeof($Colors); $i++){ 
    echo "Color Code:". $Colors[$i]."<br>"; 
} 
1
<?php 
$Colors = array('222', '111', '333', '555', '444'); 
sort($Colors); 

for($i = 0; $i < count($Colors); $i++) 
{ 
    printf("Color code: %s <br />", $Colors[$i]); 
} 
?> 
+0

아주 단순한 예제에서는 작은 정적 배열이지만 thread-safety가 실제로 어떻게 문제가되는지는 잘 모릅니다. 내가 본 유일한 문제는 그들이 반복해서 배열에 값을 넣는 것이고, 그들은 그렇게해서는 안되며 질문에 포함되지 않는다는 것입니다. –

+0

내 친구 고마워. – Alireza