2014-01-13 5 views
0
p1 p2 p3 p4 p5   p6   p7  p8 
--------------------------------------------------------------------------------------- 
1414 1414 1417 1417 1422,1421 1422,1421 1422,1421  1422,1421 

В приведенной выше таблице имеется 8 столбцов, в которых соседние столбцы имеют одинаковые значения. Как подсчитать количество столбцов на основе значений столбцов в PHP или в MySQL ..Как подсчитать количество одинаковых значений в php или mysql

Для Eg:

for 1414---values are p1,p2 and count is 2 

for 1422,1421--- values are p5,p6,p7,p8 and count is 4. 

Может ли один помочь мне в этом ..

Массив ( [0] => Массив ( [период] => р1 [теме] => 1434 [NOP] => 1 )

<b> 
    **[1] => Array 
    (
     [period] => p2 
     [subject] => 1440,1439 
     [nop] => 1 
    ) 
    [2] => Array 
    (
     [period] => p2,p3 
     [subject] => 1440,1439 
     [nop] => 2 
    )** 
</b> 

[3] => Array 
    (
     [period] => p2,p3,p4 
     [subject] => 1440,1439 
     [nop] => 3 
    ) 

[4] => Array 
    (
     [period] => p5 
     [subject] => 1442 
     [nop] => 1 
    ) 

[5] => Array 
    (
     [period] => p6 
     [subject] => 1442 
     [nop] => 1 
    ) 

[6] => Array 
    (
     [period] => p7 
     [subject] => 1442 
     [nop] => 1 
    ) 

)

Я получил выше массив .. как удалить выше выделенных значений в массиве выше от него.

+0

r u выбор одной строки каждый раз? –

+0

Вышеуказанные значения для столбцов вовсе не постоянны. Значения будут меняться все время. Мне нужно согласовать имена столбцов вместе с количеством столбцов с одинаковыми значениями. – sandy

+0

, если я использую array_unique для указанного массива im, получая только одно значение в массиве. Как удалить массив [1] и массив [2] из вышеприведенного вложенного вывода в php. может кто-нибудь дать ответ на это .. – sandy

ответ

0

предположим, что ваш $ строка имеет reesult таблицы

$your_val = '1414'; // for eg 1414 

$result_col = ""; // will contain you columns 
$result_count = 0; // will contain your count 

// $row has the each column value when you fetch from database eg $row['p1'] = 1414 
foreach($row as $key=>$val) 
{ 
    if($val==$your_val) 
    { 
    $result_count += 1; 

    if($result_text=="") 
    { 
     $result_col = $key; 
    } 
    else 
    { 
     $result_col = $result_col.",".$key; 
    } 
    } 
} 

echo "values are ".$result_col." and count is ".$result_count; // output 
+0

$ your_val = '1414'; Я не могу хардкор использовать такие значения, поскольку значения будут меняться все время. у меня может быть какое-то другое решение для этого. – sandy

+0

как вы меняете значение. Получать это путем get/post? –

+0

Я не получаю эти значения в get/post. Я получаю эти значения из таблицы backend. – sandy

0

Вы можете сделать это с MySQL:

SELECT 
IF(p1='1414',1,0) + IF(p2='1414',1,0)+ IF(p3='1414',1,0) + IF(p4='1414',1,0) + IF(p5='1414',1,0) + IF(p6='1414',1,0) + IF(p7='1414',1,0) + IF(p8='1414',1,0) AS cnt 
FROM your_table; 

Если вы используете PHP для доступа к databasem, вы можете заменить '1414' с переменной для подсчета вхождения значения переменной.

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