0

У меня есть многомерный ассоциативный массив следующим образомPHP Еогеасп многомерный ассоциативный массив

sr_array=> 
    array (size=18) 
    0 => string 'Shop' (length=4) 
    1 => string 'Papu Kushwaha' (length=13) 
    2 => string 'Jitendra Shukla' (length=15) 
    3 => string 'Satish' (length=6) 
    4 => string 'Pradeep' (length=7) 
    5 => string 'Papu Khan' (length=9) 
    6 => string 'Bharat' (length=6) 
    7 => string 'Manoj Pandey' (length=12) 
    8 => string 'select' (length=6) 
    'Shop' => 
    array (size=9) 
     'count_auto' => int 60 
     'count_indus' => int 4 
     'count_mc' => int 100 
     'count_inverter' => int 10 
     'count_in_bat' => int 40 
     'total_credit' => int 191850 
     'sale_value' => int 1351755 
     'total_disc' => float 22377.38 
     'perc_disc' => float 1.66 

и так далее ....

теперь я хочу напечатать их в виде таблицы я использовал следующий код для вывода

echo"<table border=1>"; 
      echo"<tr>"; 
      echo"<th></th>"; 


     for($i=0; $i < count($sr_array)/2; $i++){ 
      $current_sr = $sr_array[$i]; 
      echo"<th>{$current_sr}</th>"; 
     } 
     echo"</tr>"; 

     $keys = array_keys($sr_array); 

     for($i=0; $i < count($sr_array)/2; $i++){ 
      $current_sr = $sr_array[$i]; 
      echo"<tr>"; 
      echo"<td></td>"; 

      foreach($sr_array as $key => $var){ 
       foreach($var as $x => $y) 
        echo"<td>{$y["count_auto"]}</td>"; 
      } 

      echo"</tr>"; 
     } 

Пожалуйста, помогите мне выйти, как

------------------------------------- 
|   |Shop |xyz  |abc | 
------------------------------------- 
count_auto |60  |75  | 85 | 
------------------------------------- 
count_indus | 25  | 74  |15 | 
-------------------------------------- 
count_mc | 55 | 212  | 15 | 
------------------------------------- 

и так далее

Я получаю ошибки Недействительного аргумента для Еогеаспа()

Спасибо заранее

ответ

0

Основная проблема здесь в том, что, когда вы итерацию sr_array, вы предполагаете, что значения также являются массивами. Это не относится к индексу от 0 до 8 (из того, что я могу сказать). Это объясняет ближайшую проблему.

В идеале структура вашего массива согласована (в идеале, двумерный массив строк, каждый из которых содержит набор полей), тогда будет работать простой вложенный цикл.

0

Попробуйте нижеследующее решение проблемы с комбинацией for()/foreach() и зацикленной итерацией.

Также рассмотрим перенесенную таблицу html с данными в виде столбцов и описаний в виде строк. Для этого требуется сложная итерация, поскольку элементы массива не привязаны к разметке html.

echo "\n<table>\n"; 

$i = 0; 
echo "\n<tr>\n"; 
echo "\n<th></th>\n"; 
foreach($sr_array as $item) {     
    echo "<th>". array_keys($item)[$i] ."</th>\n"; 
    $i++; 
} 
echo "</tr>\n"; 

$j=0; 
foreach($sr_array as $item) { 

    echo "\n<tr>\n"; 
    echo "<td>" . array_keys($sr_array)[$j] . "</td>\n"; 
      foreach($item as $key => $value) 
      { 
       echo "<td>". $value . "</td>\n"; 
      } 
    echo "</tr>\n"; 
    $j++; 
} 
echo "\n</table>\n"; 

И выход, как показано ниже (повторяю ваши данные размещены, например):

   count_auto count_indus count_mc count_inverter  count_in_bat total_credit sale_value total_disc perc_disc 
Shop   60   4 100  10 40 191850 1351755  22377.38 1.66 
Papu Kushwaha 60   4 100  10 40 191850 1351755  22377.38 1.66 
Jitendra Shukla 60   4 100  10 40 191850 1351755  22377.38 1.66 
Satish   60   4 100  10 40 191850 1351755  22377.38 1.66 
Pradeep   60   4 100  10 40 191850 1351755  22377.38 1.66 
Papu Khan  60   4 100  10 40 191850 1351755  22377.38 1.66 
Bharat   60   4 100  10 40 191850 1351755  22377.38 1.66 
Manoj Pandey 60   4 100  10 40 191850 1351755  22377.38 1.66 
select   60   4 100  10 40 191850 1351755  22377.38 1.66 
+0

К сожалению, принимая так много времени, чтобы ответить. Я запускаю ваш код, показывая несколько ошибок, пожалуйста, помогите мне. Первый foreach ($ sr_array as $ item) { echo "". array_keys ($ item) [$ i]. " \ n"; $ i ++; } Когда я бегу над циклами кода, я получаю 18 раз, у меня есть 9 элементов в моем массиве. Второй его показывает ошибки в Еогеасп ($ деталь как $ ключ => $ значение) { эхо "". $ value. " \ n"; } –

+0

Наш 'sr_array' может быть определен по-разному. Я использовал именованные ключи: '$ sr_array ['Shop'] ['count_auto'] = 60 ...' Пожалуйста, отредактируйте свое сообщение в том, как вы определяете массив (всего несколько первых элементов). – Parfait

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