PHP - Darle un valor numerico a cadena de caracteres en php

 
Vista:
Imágen de perfil de Chino
Val: 8
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Darle un valor numerico a cadena de caracteres en php

Publicado por Chino (3 intervenciones) el 24/11/2020 23:14:09
suponiendo que las letras estan agrupadas y tienen valores numericos, por ejemplo:
1
2
3
4
5
6
7
8
9
10
Q,A,Z=1
W,S,X=2
E,D,C=3
R,F,V=4
T,G,B=5
Y,H,N=6
U,J,M=7
I,K=8
O,L=9
P,Ñ=0
como sumo los valores de alguna palabra, por ejemplo: HOLA
1
H=6 + O=9 + L=9 + A=1 == 25
USANDO ARREGLOS Y LA FUNCION FOR

se debe ver de la siguiente manera
Screenshot_2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de taisan
Val: 8
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Darle un valor numerico a cadena de caracteres en php

Publicado por taisan (3 intervenciones) el 25/11/2020 00:47:14
ESTE ES MI CODIGO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
 
<head>
<title>Informacion de Cadenas</title>
</head>
 
<?php
$array = array(
    1=>"q","a","z",
    2=>"w","s","x",
    3=>"e","d","c",
    4=>"r","f","v",
    5=>"t","g","b",
    6=>"y","h","n",
    7=>"u","j","m",
    8=>"i","k",
    9=>"o","l",
    0=>"p","ñ");
?>
 
<body>
 
    <br>Cadena: <input type="text" id="cadena" name="cadena"><br>
    <br><input type="submit" value="Buscar valor" id="buscar" name="buscar"><br>
    <br>Valor: <input type="text" id="valor" name="valor">
 
        <br>Valor de cadena:<div id="valcad" name="valcad">
        <?php for($i=0;$i< count($arraycad);$i++):?>
                <?php echo $arraycad[$i];?><br>
                    <?php endfor?><br>
 
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Manuel
Val: 51
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Darle un valor numerico a cadena de caracteres en php

Publicado por Manuel (9 intervenciones) el 25/11/2020 06:31:20
hola amigo en la primera parte donde tienes el array esta mal planteado el array ya que no estas asignando de forma correcta los valores a las letra, si lo ejecutas se va ver reflejado asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Array
(
    [1] => q
    [2] => w
    [3] => e
    [4] => r
    [5] => t
    [6] => y
    [7] => u
    [8] => i
    [9] => o
    [10] => g
    [11] => b
    [12] => h
    [13] => n
    [14] => j
    [15] => m
    [16] => k
    [17] => l
    [0] => p
    [18] => ñ
)

podrias plantearlo de la siguiente manera aunque es un poco largo seria asi a cada letra le asignamos un valor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$array = array(
    "a" => 1,
    "q" => 1,
    "z" => 1,
    "w" => 2,
    "s" => 2,
    "x" => 2,
    "e" => 3,
    "d" => 3,
    "c" => 3,
    "r" => 4,
    "f" => 4,
    "v" => 4,
    "t" => 5,
    "g" => 5,
    "b" => 5,
    "y" => 6,
    "h" => 6,
    "n" => 6,
    "u" => 7,
    "j" => 7,
    "m" => 7,
    "i" => 8,
    "k" => 8,
    "o" => 9,
    "l" => 9,
    "p" => 9,
    "ñ" => 0,
);

en la parte donde capturas los datos veo que tienes input de tipo text para capturar la cadena y uno mas de tipo submit pero estos tienes que meterlos dentro de un form y los envias por metodo post o get como te parezca mejor y quedaria de la siguiente manera

1
2
3
4
<form method="post">
    <br>Cadena: <input type="text" id="cadena" name="cadena"><br>
    <br><input type="submit" value="Buscar valor" id="buscar" name="buscar"><br>
</form>

ya después validas que lleguen los datos ya sea por post o por get y ese input de la cadena lo pasas a una varible como tal
y podes hacer un ciclo foreach para recorrer el primer array y dentro de este realizar un if para comprobar si la letras que tiene la cadena estan en dicho array en caso de que la encuentre va a ir sumando los valores que corresponden a cada letra. y por ultimo es la parte el input donde mostrabas la respuesta lo pudes poner al final con un echo.

espero te sea de ayuda
el codigo de esta parte quedaria asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if (!empty($_POST['cadena'])) {
 
    $cadena = $_POST['cadena'];
 
 
    $suma = 0;
    foreach ($array as $v => $valor) {
 
        for ($i = 0; $i < strlen($cadena); $i++) {
            if ($cadena[$i] == $v) {
                $suma = $suma + $valor;
            }
        }
    }
    echo 'Valor de cadena:<input type="text" value="El valor para ' . $cadena . ' es: ' . $suma . '">';
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar