1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP - each e arrays doubt

Discussão em 'Programação' iniciada por Gurzi, 28 de Junho de 2006. (Respostas: 5; Visualizações: 917)

  1. Gurzi

    Gurzi Power Member

    Boas malta, estou aprender esta linguagem e a minha ideia é o seguinte..

    Tenho um array básico $Utilizador = array(0=>"Pesquisa","Tiago","João","Pedro","Zacarias","Mariatchi");

    a minha ideia era colocar na posição 0 do array o valor enviado pela caixa de texto no html com o nome 'search'.

    Depois ele procurava na array valores iguais à posição 0 e mostrava em que posição estavam e que value tinham..

    fiz isto :


    Código
    GeSHi (php):
    <?
    ////////////////////////////////////////////////////
    //ACÇÃO DO FICHEIRO TIAGO.HTML -- strcmcase.php////
    ///////////////////////////////////////////////////

    $Utilizador = array(0=>"Pesquisa","Tiago","Liliana","Tiago","João","Leonel","Mariana");

    $Each = each($Utilizador);
    FOREACH($Utilizador AS $Procura)
    {

    $Procura[0] = $_POST['search'];
    IF ($procura[0] == $procura)
    echo "<br> ".$Each['key'] ."--".$Each['value'];
    }

    ?>Created by GeSHI 1.0.7.5

    Bem o resultado não é o esperado dando uma coisa deste género :

    0--Pesquisa
    0--Pesquisa
    0--Pesquisa
    0--Pesquisa
    0--Pesquisa
    0--Pesquisa
    0--Pesquisa

    o que não é nada que eu queira :\

    obrigado desde ja´ [​IMG]
     
  2. ApM

    ApM Power Member

    hey!
    n sei se tas a seguir algum exemplo ou assim, mas tas a fazer alguma confusao pra nada.
    pra ja n sei se tens alguma utilidade a por o k keres procurar na primeira posicao do array, mas vou assumir k nao.

    entao tens varias hipoteses pra fazer isso, entre as 102083 vão aki duas:
    mais à la php, ou whatever...
    Código:
    $Utilizador = array("Pesquisa","Tiago","Liliana","Tiago","Joao","Leonel","bu");
    
    while(list($key, $val) = each($Utilizador)){
            if($val == $_POST['search'])
                    echo "<br> $key -- $val";
    }
    
    ou mais à la C:
    Código:
    $Utilizador = array("Pesquisa","Tiago","Liliana","Tiago","Joao","Leonel","bu");
    
    for($i=0; $i<count($Utilizador); $i++){
            if($Utilizador[$i] == $_POST['search'])
                    echo "<br> $i -- ". $Utilizador[$i];
    }
    
    
    Edit:
    AH e dps tens uma funcao k ja faz isso:
    Código:
    $Utilizador = array("Pesquisa","Tiago","Liliana","Tiago","Joao","Leonel","bu");
    
    echo "<br> " . array_search($_POST['search'], $Utilizador) . " -- " . $_POST['search'];
    
     
    Última edição: 28 de Junho de 2006
  3. Gurzi

    Gurzi Power Member

    muito obrigado :) realmente é muito simples.. :)

    tb já consigo fazer com um foreach() o problema é quando são arrays de arrays já troco-me todo no foreach e não consigo fazer :\

    ah e o array_search só encontra 1 valor.. se tiver mais que 1 só mostra 1 valor..o que não é muito útil
    :004:
     
    Última edição: 28 de Junho de 2006
  4. ApM

    ApM Power Member

    bem essa do foreach é simples:
    tens k ter dois foreach um dentro do outro. o primeiro vai iterando sobre os subarrays e o segundo sobre os valores.

    Código:
    $vector = array(array(1,2,3,4), array(5,6,7,8));
    
    foreach($vector as $ivector){
            foreach($ivector as $num){
                    echo $num . "<br>\n";
            }
    }
    
     
  5. Gurzi

    Gurzi Power Member

    Hmm , acho que já apanhei a cena, obrigado :)

    outra questão.. quando defines uma array é preferível definir através de

    $var[x][x] =
    $var[x][y] =
    $var[x][z] =

    ou $var= array(array("x)),array("y"),array("z"));

    já agora, declarei igual das duas formas ? estou confuso com esta forma de declarar arrays =D
     
  6. Lancaster

    Lancaster To fold or to FOLD?

    Heyas all...

    Eu gosto mais de difinir da 1º maneira....mas isto são hábitos...

    E não os declaras-te igual das duas formas..

    Porque no segundo estás a dizer o seguinte:
    Código:
    $var[x] = array('x');
    $var[x] = array('y');
    $var[x] = array('z');
    
    Espero que tenhas percebido..

    Hasta all [[]]
     

Partilhar esta Página