2012-02-04 2 views
1

을 사용하고 내가 위해서 var_dump ($에서 myArray)를 사용할 때 outpot 지정받을, 다음 나에게 제공합니다

array(4) { [0]=> array(2) { [0]=> string(3) "EUR" [1]=> string(9) "43,543.23" } [1]=> array(2) { [0]=> string(3) "USD" [1]=> string(9) "13,432.34" } [2]=> array(2) { [0]=> string(3) "GBP" [1]=> string(8) "3,432.21" } [3]=> array(2) { [0]=> string(3) "CAD" [1]=> string(8) "2,321.34" } } 

하지만 난 출력을 원하는 나는

GBP 3,432.21 
USD 13,432.34 
EUR 43,543.23 
CAD 2,321.34 

및 배열에 "합계", ""추가 : 내가 할 배열을 정렬 할 필요가 있다고 가정

Totals 
GBP 3,432.21 
USD 13,432.34 
EUR 43,543.23 
CAD 2,321.34 

다음 follwing을 형식이어야 틀릴 수도있어, 아무 것도 그걸 도와 줄 수 있는데, 어떤 도움이라도 대단히 감사하겠습니다! 프로그래밍 방식으로 처리되기를 바랍니다! $ myarray 배열을 예상 된 출력으로 정렬하는 방법?

답변

1

첫째, 배열과 관련없는 데이터를 추가하지 마십시오. 문자열 "합계"가 배열에 포함되어서는 안됩니다. 출력을 원할 경우 문제를 해결할 수있는 더 좋은 방법을 제안합니다.

<?php 
    class MyMoney { 
     var $type; 
     var $value; 

     public function __toString() { 
     return $type." ".$value."\n";  
     } 
    } 

    $output="Totals:\n"; 
    // $data is an array of MyMoney objects 
    foreach($entry in $data) { 
     $output.= (string) $entry; 
    } 

    dump($output); 

이 정보가 도움이되기를 바랍니다.

+0

확실히 갈 방법 : 데이터와 기능을 함께 유지하십시오! (그리고 분명히 명령은 필수는 아니었다) – xtofl

2

거의 완벽합니다.

'합계'를 배열에 추가하지 마십시오. 그것은 단순한 데코레이션이 아닙니다. 나머지는 배열을 '덤프'하지 않지만 예를 들어 그것에서 문자열을 위해. 원칙적으로 데이터를 출력 형식 지정 이유로 변경하지 않으면 데이터를 처리하는 다음 함수에서 '합계'항목을 제거하는 중 ... :

또한 반복을 제어하려고합니다 주문; 그러므로 당신이 원하는 키를 통해 대신 배열 자체를 반복 할 수 있습니다

$output="Totals:\n"; 
foreach($currency in array("GBP","USD","EUR","CAD")) { 
    $entry=$data[$currency]; 
    $output.=$currency." ".$entry[1]."\n"; 
} 

dump($output); 

편집 -이 당신이 설명하는지 경우 잘 모르겠습니다 만 아마도 수

1

주문에 대한 비트를 추가 현재 상황에서 유용 할 :

$myArray = array(
     "title" => "Totals", 
     "data" => array(
       "GBP" => "3,432.21", 
       "USD" => "13,432.34", 
       "EUR" => "43,543.23", 
       "CAD" => "2,321.34" 
     ) 
); 

var_dump($myArray); 

출력 :

array(2) { 
    ["title"]=> 
    string(6) "Totals" 
    ["data"]=> 
    array(4) { 
    ["GBP"]=> 
    string(8) "3,432.21" 
    ["USD"]=> 
    string(9) "13,432.34" 
    ["EUR"]=> 
    string(9) "43,543.23" 
    ["CAD"]=> 
    string(8) "2,321.34" 
    } 
} 
+0

감사합니다.하지만 프로그래밍 방식으로 수행하고 싶습니다. – smith

0
<?php 
$output = "Totals<br>"; 
foreach ($myarray as $value) 
{ 
    $output .= $value[0].' '.$value[1].'<br>'; 
} 
echo $output; 
?>