Jump to content
Sign in to follow this  
Umbus

Count array

Recommended Posts

Umbus

Boas pessoal,

Estou com um problema aqui, eu quero fazer de valores encontrados num array. O exemplo contar quantas vezes existe no array a string "1", ou "palavra", mas não estou a ver como consigo fazer isto eu tentei de uma forma, aparece 12 (numero de vezes que fui buscar a base de dados). Vejam o meu var_dump quando sai do ciclo à procura da palavra "Outro":

array(12) {
  [0]=>
  array(0) {
  }
  [1]=>
  array(0) {
  }
  [2]=>
  array(0) {
  }
  [3]=>

  array(0) {
  }
  [4]=>
  array(0) {
  }
  [5]=>
  array(0) {
  }
  [6]=>
  array(0) {
  }
  [7]=>
  array(0) {
  }
  [8]=>
  array(0) {
  }
  [9]=>

  array(0) {
  }
  [10]=>
  array(1) {
    [0]=>
    array(1) {
      ["Title"]=>
      string(5) "Outro"
    }
  }
  [11]=>
  array(1) {
    [0]=>
    array(1) {
      ["Title"]=>

      string(5) "Outro"
    }
  }
}

O codigo usado para isto foi: count($val1) o resultado do codigo é: 12

No caso eu queria o resultado 2 (numero de vezes que foi encotrada a palavra no array)

Ajuda please


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
taviroquai

Tens essas strings "Outro" aqui:

$val1[10][0]['Title'] = 'Outro';

$val1[11][0]['Title'] = 'Outro';

Não sei se pretendes procurar por toda a matriz mas ficaria mais fácil usar uma matriz unidimensional.

Share this post


Link to post
Share on other sites
HappyHippyHippo
function stringHitsInArray($array, $string) {
  $count = 0;
  foreach($array as $item) {
    if (strpos($item, $string) !== false)
      $count++;
  }
  return $count;
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Umbus

Boas,

É quase isso HappyHippyHippo, obrigado, mas dá este erro:

Warning: strpos() expects parameter 1 to be string, array given in


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites
Umbus

Bem aqui está a solução para o erro para quem precisar:

function stringHitsInArray($array, $string) {
  $count = 0;
  foreach($array as $items) {
	foreach($items as $item) {
		var_dump($item['Title']);
		if (strpos($item['Title'], $string) !== false)
		$count++;
	  }
  }
  return $count;
}

Mais uma vez um grande obrigado para o HappyHippyHippo :P .

Cumpriemntos


Eu sou eu e eu sou aquele que sou eu...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.