Foros del Web » Programando para Internet » PHP »

Arreglo de string

Estas en el tema de Arreglo de string en el foro de PHP en Foros del Web. Hola a todos, tengo un inconveniente con el siguiente codigo, a ver les explico: En un formulario tengo un ÁREA DE TEXTO, donde ingreso cadenas ...
  #1 (permalink)  
Antiguo 05/11/2009, 11:57
 
Fecha de Ingreso: noviembre-2008
Ubicación: lima
Mensajes: 148
Antigüedad: 16 años
Puntos: 0
Exclamación Arreglo de string

Hola a todos, tengo un inconveniente con el siguiente codigo, a ver les explico:

En un formulario tengo un ÁREA DE TEXTO, donde ingreso cadenas de números, cuando voy a ingresar el siguiente le don un enter(tecla enter) e ingreso el que sigue así hasta que ingreso todaas las cadenas, luego envio el formulario y me envia los dayos ingresados a contar.php, aquí recibe el valor ingresado en el área de texto, elimino los caracteres del "enter", como me devuelve un arreglo de cadenas, deseo contar los elementos repetidos, para saber cuantas cadenas son iguales, pero el problema esta en que cadenas diferentes por un caracter las considera iguales:

Por ejemplo:


350021502120400236
350021502120400236
350021502120400237
350021502120400237
350021502120400236
350021502120400236

//mi función contar repeticiones me dice que del elemento 350021502120400236 hay 6 repeticiones cuando solo hay 4 y no cuenta a
350021502120400237 los toma como si fueran idénticos.


contar.php
Código PHP:
import_request_variables("GP");

$centro=$_REQUEST['centro'];
$pedido=$_REQUEST['pedido'];

function 
contar_repeticiones($array)
{
    
$ya_duplicados = array();
    
$cantidad_duplicados=array();
    
$cont=0;
       
    foreach(
$array as $item)
    {
        for(
$u=0;$u<sizeof($array); $u++)
        {
            if((
$item==$array[$u]) && !in_array($item$ya_duplicados))
            {
            
                
$cont++;
                 
            }
        }

        if(!
in_array($item$ya_duplicados))
        {
            
array_push($ya_duplicados$item);
            if(
$cont==0)
            {
                
$cont=1;
            }
            
$cantidad_duplicados[$item]=$cont;
    
           }
        
        
$cont 0;
        
    }
    
    return 
$cantidad_duplicados;
        
}


if(isset(
$_REQUEST['envia']))
{
    
$insert=$_REQUEST['ins'];
    
$trozos explode("\r\n"$insert);
    
array_pop($trozos);
    
//print_r($trozos);
    
    // $trozos=strtoupper($trozos);
    
$nuevo_arraycontar_repeticiones($trozos);
    
//print_r($nuevo_array); 
    
foreach($nuevo_array as $key => $val)
    {
         
$val1=strtoupper($key);
         
$insert="insert into pre_despacho values('".$centro."','".$pedido."','".$val1."','".$val."','".$val."','0')";
         
mysql_query($insert) or die(mysql_error());
    }
    
        

  #2 (permalink)  
Antiguo 05/11/2009, 12:54
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Arreglo de string

Prueba con este código:

Código PHP:
$listado = array('001''002''003''001''002');

$indices array_flip($listado);

$totales = array();

foreach(
$indices as $key => $value)
{
    
$i=0;
    foreach(
$listado as $valor)
    {
        if(
$valor == $key)
            
$i++;
    }
    
$totales[$key] = $i;
}

var_dump($totales); 
Saludos!
  #3 (permalink)  
Antiguo 05/11/2009, 14:48
 
Fecha de Ingreso: noviembre-2008
Ubicación: lima
Mensajes: 148
Antigüedad: 16 años
Puntos: 0
Exclamación Respuesta: Arreglo de string

he probado y nada no me funciona, los toma como iguales...
Código PHP:
<?

$insert
=$_REQUEST['ins'];
$trozos explode("\r\n"$insert);
array_pop($trozos);

$listado=$trozos;


$indices array_flip($listado); 

$totales = array(); 

foreach(
$indices as $key => $value

    
$i=0
    foreach(
$listado as $valor
    { 
        if(
$valor==$key
    
            
$i++; 
        
    } 
    
$totales[$key] = $i



foreach(
$totales as $k => $v)
{
    echo 
$k.'=>'.$v;
    echo 
'<br>';


}
?>
En $insert guardo los valores ingresados en el text area y esos valores son ingresados, por una lectora de codigos de barra es por eso esta linea:

Código PHP:
$trozos explode("\r\n"$insert);
array_pop($trozos);

$listado=$trozos
Y los sigue tomando iguales, pero solo son con las cadenas que se diferencian en un caracter pues a las que son diferentes(dos caracteres a mas )ahi si no hay problema.

Alguna otra idea.?

Gracias
  #4 (permalink)  
Antiguo 06/11/2009, 09:27
 
Fecha de Ingreso: noviembre-2008
Ubicación: lima
Mensajes: 148
Antigüedad: 16 años
Puntos: 0
Exclamación Respuesta: Arreglo de string

Alguien que me pueda ayudar a saber que sucede con este codigo por favor?
  #5 (permalink)  
Antiguo 06/11/2009, 09:49
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Arreglo de string

Te sobra la función array_pop()

Saludos!
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 22:06.