2012-03-15 2 views
1

나는 챔피언 리그 (내일, 16 월 3 월 16 일) 리그 8 강 진출을 목표로하고 싶다 : 나는 2 가지 질문을 가지고있다 : 먼저 모듈러스가 작동하지 않는다. 배열, 내가 쓰고 싶었던 반면에 매 두 경기 (매 2 항목) ...PHP 모듈러스와 결과의 print_r?

두 번째 질문 : 결과를 "인쇄"하는 더 좋은 방법이 있습니까? 인덱스가없는 print_r처럼 말입니다. "은 각 항목 뒤에 \n을 추가합니다." 당신의 도움이

답변

1

모듈로에 대한

<body> 
<?php 

$array = array("real", "barça", "bayern", "apoel", "chelsea", "milan", "benfica", "marseille"); 

$new = array(); 
$incr = count($array); 

while($incr>0){ 
    $random = rand(0, count($array)); 

    if (!in_array($array[$random], $new)){ 
     $new[] = $array[$random]; 
     if ((count($new) % 2)){ 
      $new[] = " -- another match : "; 
     } 
     $incr--; 
    } 
} 

print_r($new); 


?> 
<p>results</p> 
</body> 

덕분에 완벽하게 작동된다

  • 배열이 비어 시작합니다.
  • 요소를 추가합니다. 어레이
  • -- another match 추가되도록
  • 길이를 따라서 길이가 2
  • 루프
  • 다음 반복은, 사용자가 또 다른 요소를 추가 지금이다, 그래서 truthy 그래서 1 그래서 1 % 2 1 정렬. 당신이 그렇게에 -- another match

그리고 추가 할 수 있도록

  • 길이는 너무 1, 그래서 truthy, 지금 바로 3 % 2 3입니다. 당신이하려는 일이 무엇이든, 당신이 서버에 지시 한 바가 아닙니다. 당신이 그것을 말하고있는대로 계수가 정확히 작동하고

    $array = Array(........); 
    while($a = array_shift($array)) { 
        $random = rand(0,count($array)-1); // -1 is important! 
        echo $a." vs. ".$array[$random]."<br />"; 
        unset($array[$random)]; 
        // no need to realign keys since array_shift already does that 
    } 
    
  • +0

    감사합니다. 재미있는 이유는 무엇입니까? et? print_r에 대해서는 실제로 변수에 기본 HTML 코드를 넣을 수 있습니다. '
    '은 좋은 해결책 인 것 같습니다 – Paul

    +0

    흠, -1 정도입니까? array_shift는'$ array'을 변경하므로'count ($ array)'는 배열의 원소 개수를 이동 한 후에 ... 그렇지 않습니까? – Paul

    +0

    배열 요소를 설정 해제하면 다시 선택되지 않습니다. 그리고'-1'에 대해서 ... 글쎄, 여러분이 Array ('a', 'b', 'c')'를 가지고 있다고 가정하면, 'count'는 3이지만 마지막 요소는'2'의 위치에 있습니다. –

    0

    :

    은 당신이 아마해야 할 것은이 같은 것입니다.

    (COUNT (새 $) % 2)) {

    when count($new) = 1, 1 % 2 = 1, = true 
    when count($new) = 2, 2 % 2 = 0, = false 
    when count($new) = 3, 3 % 2 = 1, = true 
    when count($new) = 4, 4 % 2 = 0, = false 
    when count($new) = 5, 5 % 2 = 1, = true 
    when count($new) = 6, 6 % 2 = 0, = false 
    
    +0

    감사 마크 베이커 – Paul

    2

    는 또 다른 옵션은 다음 shuffle 배열 요소의 각 오프 단지 pop하는 것

    $array = array("real", "barça", "bayern", "apoel", "chelsea", "milan", "benfica", "marseille"); 
    
    shuffle($array); 
    
    while($a = array_pop($array)) { 
        echo $a." vs. ".array_pop($array)." <br />"; 
    } 
    

    샘플 출력 :

    apoel vs. real 
    barça vs. milan 
    marseille vs. bayern 
    chelsea vs. benfica 
    
    +0

    좋은 감사합니다, 좋은 해결책도 – Paul

    +2

    @ 폴 그건 약간 이상한데 .. 내 예측이 맞는 것 같습니다! – Ciaran

    +0

    하하, 좋은, 당신은 승자를 찾기 위해 함수를 만들 수 있습니까? – Paul

    관련 문제