2014-02-27 2 views
0

으로 나는 foreach는 구조를 가지고있다. PHP 사전 스타일의 배열 및 정렬 특정 키 이름

  • $ thisUserID
  • $ payPalEmail
  • $ 금액이
  • ... 다음을 정렬 할

    1. $ scheduleID : foreach는 내부 나는이 4 개 값을 포함하는 배열을 구성 할 필요가 $ thisUserID에 의해 배열. 그리고 나서 foreach를 빌드하여 새로운 배열을 올바르게 반복하고 각 값을 가져 오는 방법을 알아야합니다.

      중요 : 모든 $ scheduleID는 고유하지만 다른 3 개의 값이 반복되는 경우가 있습니다.

      나는 이런 식으로 뭔가를 생각하지만, 잘 동작하지 않습니다 :

      $object["ScheduleID"] = $scheduleID 
      $object["UserID"] = $thisUserID 
      $object["PayPalEmail"] = $payPalEmail 
      $object["Amount"] = $amount 
      

      (다음 $ 객체 [ "사용자 ID"]에 대한 정렬을 수행하고) - 나는 시도 다른 종류를 scheme from stackoverflow and php docs,하지만 뭔가 잘못하고 있어야합니다.

      미리 감사드립니다.

    답변

    0

    당신은 다음과 같이 foreach 문에서 배열을 준비 할 수 있습니다 :

    foreach($_POST as $name => $value) { 
        if($value && $value > 0){ // ensure we have a positive amount 
         $composite = explode("-", Replace($name, "ScheduleID_", "")); 
         $objects[$composite[0]] = array( 
          'UserID' => $composite[1], 
          'payPalEmail' => $composite[2] 
         ); 
         $amount = $value; 
    
         $counter++; 
         $sum += $value; 
        } 
    } 
    ksort($objects); 
    

    그런 다음 foreach 문 후에는 ksort에 의해 배열을 정렬 할 수 있습니다.

    +0

    Toorion, 자세한 내용이 필요합니다. 나를 위해 일하지 않은 것은 바로 ksort입니다. ksort와 새로운 foreach의 정확한 코드를 입력하십시오. 고마워. – HerrimanCoder

    +0

    편집 해 주셔서 감사합니다. 아직 편집되지 않았습니다. 나는 다음을 시도했다 : foreach ($ name => $ value와 같은 $ objects) { \t foreach ($ value는 $ name2 => $ value2) { \t \t writeme ("$ name2 = $ value2"); \t} } - 사용자 ID별로 정렬하지 않습니다 (요구 사항). 그리고 ksort ($ objects)에서 사용자 ID별로 정렬하지 말라고 말하고 있습니다. 올바른 ksort가 무엇인지 알려주십시오. 감사. – HerrimanCoder

    +0

    Ops, 죄송합니다 - userId가 uniq입니까? – Toorion