2013-04-16 2 views
0

У меня есть база данных, подключенная к моему сайту, которая записывает действия, предпринятые пользователем в приложении, которое мы создали. Приложение содержит несколько изображений, которые пользователь может просматривать и загружать, а также треки приложений для каждого пользователя, изображение, которое они просматривали, разделенное запятойВзрыв DB-записи в табличном формате

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

Если база данных содержит пример записи:

1 | 1-A, 1-B, 2-A, 2-C 
2 | 1-A 
3 | 1-B, 2-C 
4 | 
5 | 1-A, 1-B, 1-C, 2-A 

на что я хотел бы написать сценарий, который сможет вывести это как:

1-A = 3 
1-B = 3 
1-C = 1 
2-A = 2 
2-C = 2 

(Я хочу указать, что я не хочу, чтобы я хотел иметь переменные, названные после каждой записи, с ее рассчитанной суммой как значением, я открыт, чтобы как можно лучше вернуть это значение)

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

Я понимаю, что база данных очень плохо структурирована, но, к сожалению, я ее не написал, и поэтому у меня нет возможности переструктурировать данные.

Сердечные приветы

ответ

1

это должно работать:

<?php 
    $values = array (
         '1' => '1-A, 1-B, 2-A, 2-C', 
         '2' => '1-A', 
         '3' => '1-B, 2-C', 
         '4' => '', 
         '5' => '1-A, 1-B, 1-C, 2-A' 
        ); 
    $valueCounts = array(); 
    foreach($values as $value) 
    { 
     foreach(explode(', ', $value) as $val) 
     { 
      if(!key_exists($val, $valueCounts)) 
      { 
       if($val) $valueCounts[$val] = 1; 
      } 
      else 
      { 
       $valueCounts[$val]++; 
      } 
     } 
    } 
    ksort($valueCounts); 
    foreach($valueCounts as $value => $count) 
    { 
     echo "$value = $count<br />"; 
    } 
?> 

результат:

1-A = 3 
1-B = 3 
1-C = 1 
2-A = 2 
2-C = 2 

, если вы не знаете, как заполнить $values массив, пожалуйста, вставьте код базы данных, и я попытается включить его в вышесказанное.

+0

Отлично, это дало мне то, что мне было нужно, спасибо :) –

+0

отлично, рад помочь :) – verbumSapienti

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