2014-02-21 3 views
-1

У меня есть многомерный массив, который выглядит следующим образом:Показать многомерный массив определенным образом

Array(

[DETROIT] => Array 
    (
     [NORTH] => 20.00% 
     [SOUTH] => 30.00% 
     [WEST] => 25.00% 

    ) 

[CHICAGO] => Array 
    (
     [NORTH] => 59.14% 
     [SOUTH] => 12.94% 
     [WEST] => 0.00% 
     [EAST] => 34.60% 
    ) 

[NEW YORK] => Array 
    (
     [WEST] => 38.00% 
     [EAST] => 49.00% 
    ) 

[DALLAS] => Array 
    (
     [WEST] => 60.57% 
    ) 

Я хочу, чтобы отобразить эту таблицу, так что места находятся в верхней части моего стола, а затем Север, Юг, Запад и Восток являются строками, как это:

  DETROIT  CHICAGO NEW YORK DALLAS 
NORTH  20.00  59.14  N/A  N/A 
SOUTH  30.00  12.94  N/A  N/A 
WEST  25.00  0.00  38.00  60.57 
EAST  N/A   34.60  49.00  N/A 

Это то, что я до сих пор, но я с трудом форматированием:

<? 
    foreach ($ARR as $LOCATIONS => $RESULTS) { 
    ECHO "{$LOCATIONS} <br>"; 
     foreach ($RESULTS as $PERCENT) { 
      echo "{$PERCENT} "; 
     echo "<br>"; 

    } 
    } 
    ?> 
+0

Это не многомерный, он иерархический. Anf это довольно тривиальная проблема, если элементы второго уровня являются определенным набором: $ dim = array ('NORTH', 'SOUTH', 'EAST', 'WEST'); ... foreach ($ dim as $ d) {echo $ результаты [$ D); } – symcbean

ответ

0

Я бы использовал таблицу для отображения вашей таблицы информации. Многие люди отказываются использовать столы, несмотря ни на что, но на самом деле таблица прекрасно справится с этим.

<?php 
    $stats = array(
     "Detroit"=>array(
     "Stat 1"=> "1000", 
     "Stat 2"=> "2000", 
     "Stat 3"=> "3000" 
     ), 
     "Chicago"=>array(
     "Stat 1"=> "4000", 
     "Stat 2"=> "5000", 
     "Stat 3"=> "6000" 
     ) 
    ); 
    echo "<table>"; 
    $heading = "<tr><td>&nbsp;</td>"; 
    $stats_key = array("Stat 1","Stat 2","Stat 3"); 
    $cities = array(); 
    foreach ($stats as $city=>$city_stats){ 
    $cities[] = $city; 
    $heading .= "<td>" . $city . "</td>"; 
    } 
    $heading .= "</tr>"; 
    foreach ($stats_key as $key){ 
    $table .= "<tr><td>" . $key . "</td>"; 
    foreach ($cities as $cit){ 
    $table .= "<td>" . $stats[$cit][$key] . "</td>"; 
    } 
    $table .= "</tr>"; 
    } 

    echo $heading; 
    echo $table; 
+0

Я думаю, что в моем вопросе неясно. Я хочу отображать свою информацию в таблице, но я не знаю, как заставить ее выглядеть как таблица, которую я хочу. Btw, массив намного длиннее этого, поэтому мне все еще нужен цикл for. – user3266259

+0

Спасибо вам большое! – user3266259

+0

Без проблем, рад, что я мог бы помочь. –

Смежные вопросы