PHP - each e arrays doubt

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´
wink.gif
 
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:
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:
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";
        }
}
 
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
 
Heyas all...

Gurzi disse:
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

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 [[]]
 
Back
Topo