Foros del Web » Programando para Internet » PHP »

Buscar y comparar cadenas en array

Estas en el tema de Buscar y comparar cadenas en array en el foro de PHP en Foros del Web. Holas! bueno soy nuevo en este foro; tengo un problema en PHP y quisiera que alguien me pueda ayudar a resolverlo; bueno es el siguiente: ...
  #1 (permalink)  
Antiguo 13/10/2008, 13:19
 
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Buscar y comparar cadenas en array

Holas! bueno soy nuevo en este foro; tengo un problema en PHP y quisiera que alguien me pueda ayudar a resolverlo; bueno es el siguiente:

Tengo definico 5 array; y una variable que es una cadena separa por comas como llantas, motor, vuela.
Lo que hago es separar la variable y la convierto en una matriz con la funcion explode
$str=explode(',',$variable);

entonces quiero que la matriz $str = busque y compare en las otras 5 matrices; que palabras se repiten y me muestre numero de palabras en cada una de las otras matrices
bueno el codigo que tengo es el siguiente:

Código:
<?
$texto = "llantas, motor, vuela, alas,chasiz";

$coche = array("1" => "llantas", "2" => "ventana", "3" => "enciende");
$bicicleta = array("4" => "llantas", "5" => "chasiz", "6" => "cadena");
$motocicleta = array("7" => "motor", "8" => "llantas", "9" => "chasiz");
$avion = array("10" => "llantas", "11" => "motor", "12" => "alas");
$helicoptero = array("13" => "vuela", "14" => "motor", "15" => "elices");
$c = 0;
$b = 0;
$m = 0;
$a = 0;
$h = 0;
$str=explode(",",$texto);
$n = count($str);
for($i = 0; $i < $n; $i++){
		if (array_search($str[$i], $coche)){
			$c += $c + 1;
		}
		if (array_search($str[$i], $bicicleta)){
			$b = $b + 1;
		}
		if (array_search($str[$i], $motocicleta)){
			$m = $m + 1;
		}
		if (array_search($str[$i], $avion)){
			$a = $a + 1;
		}
		if (array_search($str[$i], $helicoptero)){
			$h = $h + 1;
		}
}

echo "coche : ".$c."<br>";
echo "bicicleta : ".$b."<br>";
echo "motocicleta : ".$m."<br>";
echo "avion : ".$a."<br>";
echo "helicoptero :".$h."<br>";

?>
con este codigo me recorre las matrices; y compara con la variable str
pero solo toma la primera matriz; y yo quiero que se comparen todas la matrices
y me imprima
cuantas hay iguales hay en choche, bicicleta,motocicleta,avion y helicoptero.

bueno espero que alguien me pueda ayudar gracia

Martin Adan
  #2 (permalink)  
Antiguo 13/10/2008, 14:16
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Buscar y comparar cadenas en array

Hola

revisa elm manual de php a ver que funcion de array te puede servir

http://es2.php.net/manual/es/book.array.php

Un saludo
  #3 (permalink)  
Antiguo 13/10/2008, 16:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Buscar y comparar cadenas en array

Ya encontre el error estaba bien el codigo; lo malo era de que la cadena texto estaba con espacios en blanco:

Cita:
<?php
$texto = "llantas,motor,vuela,terrestre"; //////tenia espacios en blanco

$coche = array("1" => "llantas", "2" => "motor", "3" => "terrestre");
$bicicleta = array("4" => "llantas", "5" => "chasiz", "6" => "cadena");
$motocicleta = array("7" => "motor", "8" => "llantas", "9" => "chasiz");
$avion = array("10" => "llantas", "11" => "motor", "12" => "alas");
$helicoptero = array("13" => "vuela", "14" => "motor", "15" => "elices");
$c = 0;
$b = 0;
$m = 0;
$a = 0;
$h = 0;

$str=explode(",",$texto);
$n = count($str);

for($i = 0; $i < $n; $i++){
if (array_search($str[$i], $coche)){
$c = $c + 1;
}
if (array_search($str[$i], $bicicleta)){
$b = $b + 1;
}
if (array_search($str[$i], $motocicleta)){
$m = $m + 1;
}
if (array_search($str[$i], $avion)){
$a = $a + 1;
}
if (array_search($str[$i], $helicoptero)){
$h = $h + 1;
}
}
/*
for($i = 0; $i < $n; $i++){
echo $str[$i]."<br>";
}*/

echo "coche : ".$c."<br>";
echo "bicicleta : ".$b."<br>";
echo "motocicleta : ".$m."<br>";
echo "avion : ".$a."<br>";
echo "helicoptero :".$h."<br>";

?>
gracias de todas maneras

Martin Adan
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:29.