2015-05-01 2 views
-4

я сделал функцию PHP countResponses, который принимает массив операторов обратной связи и показывает, сколько раз утверждение произошлоPHP определение функции

$responses=array('Good','Good','OK','Bad','Good'); 
print "Number is ".countResponse('Good',$responses); 

Heres определение countResponses, но не уверен, что если его правильно

function countResponse($a,$e){ 
$countNumber=1; 
foreach($a as $responses){ 
    if($responses = $u) {$count=$count++}; 
    }; 
return countResponses; 
} 

Любая помощь, пожалуйста? Спасибо

+0

'если ($ ответов = $ U) {графа $ = $ count ++}; 'всегда будет истинным, потому что вы назначаете переменную и не формируете сравнение. вместо этого используйте '=='. – Ohgodwhy

+0

$ u также не облагается –

+0

У вас много ошибок синтаксиса. Вы даже проверили это? –

ответ

2

У вас есть некоторые проблемы с вашими параметрами.

Вы вызываете функцию как countResponse('Good',$responses) с выражением first и array second. Ваша функция, однако, равна function countResponse($a,$e) с первым массивом и вторым выражением. Кроме того, вы используете $u вместо $e в коде. И у вас проблемы с точкой с запятой, как показано в .{$count=$count++};. Обледенение на торте состоит в том, что вы возвращаете имя функции (вид) с помощью return countResponses;.

Я не верю, что вы на самом деле проверили этот код на всех, но давайте это исправить:

function countResponse($a,$e) 
{ 
    $count = 0; 
    foreach($a as $responses) 
    { 
     if($responses == $e) 
     { 
      $count++; 
     } 
    } 
    return $count; 
} 

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

Вы можете вызвать вашу функцию как таковую:

countResponse($responses,'Good') 
0

Попробуйте

function countResponse($a, $e){ 
    $count = 0; 
    foreach($a as $responses){ 
     if($responses === $e) { 
      $count++; 
     } 
    } 
    return $count; 
} 

называют это так

$responses=array('Good','Good','OK','Bad','Good'); 
print "Number is ".countResponse($responses, 'Good'); 
Смежные вопросы