Ayuda con script PHP
- wpas
- Graduate


- Registrado: Jul 12, 2010
- Mensajes: 214
- Loc: Canada
- Status: Offline
Hola a todos
Estoy trabajando en un proyecto y necesito ayuda para llegar a la conclusión.
Tengo una matriz que asigna a un número a cada letra del alfabeto.
Digamos que tenemos el nombre «Thomas John Hancock»
Primero necesito para obtener el número de la carta para el nombre, segundo nombre y apellido.
Hago esto como sigue:
Esto me da el siguiente resultado:
T = 2
H = 8
O = 6
M = 4
A = 1
S = 1
J = 1
O = 6
H = 8
N = 5
H = 8
A = 1
N = 5
C = 3
O = 6
C = 3
K = 2
Aquí está la parte interesante ahora.
Lo que quiero hacer es conseguir una mesa como sigue:
y así sucesivamente....
Si nos fijamos en la columna Nombre, vemos que empezamos con la primera letra del nombre y su valor.
La carta se repite según su valor. Vemos T = 2, por lo que se repite 2 veces.
Entonces tomamos la siguiente letra del primer nombre y su valor.
Otra vez se repite según su valor.
Esto es para el resto de las letras en el nombre.
Después de que hemos llegado a la última letra del nombre, se repite el proceso de comenzar nuevamente con la primera letra del nombre.
Lo mismo se aplica también para el Middlename y Lastname de columnas.
La columna Total es simplemente la suma de los valores en carta toda la fila.
Dejé al final del apellido como podíamos ir para siempre.
Lo que tengo que hacer entonces es poder limitar el número de filas que se generará.
Una vez hecho esto, entonces necesito poder seleccionar cualquier fila y ver su Total.
Si seleccione y la fila 20, quiero poder ver el número de fila y el valor Total de esa fila que sería 20 y Total de 15.
Esto es porque a veces puedo quiero la tabla imprimir, pero sólo quiero ser capaz de seleccionar una fila en la tabla y mostrar la fila y valule Total
Agradecería cualquier ayuda que alguien me pueda dar al respecto.
Gracias
Estoy trabajando en un proyecto y necesito ayuda para llegar a la conclusión.
Tengo una matriz que asigna a un número a cada letra del alfabeto.
Digamos que tenemos el nombre «Thomas John Hancock»
Primero necesito para obtener el número de la carta para el nombre, segundo nombre y apellido.
Hago esto como sigue:
Código: [ Select ]
<?php
$ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8);
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
//make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
//Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
//now loop through each name one by one to get the values of each letter in the name
//first name
for($i=0; $i<$lenfn; $i++)
{
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
echo $alphafn." = ".$letternumberfn."<br />";
}
echo "<br />";
//middle name
for($i=0; $i<$lenmn; $i++)
{
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
echo $alphamn." = ".$letternumbermn."<br />";
}
echo "<br />";
//last name
for($i=0; $i<$lenln; $i++)
{
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
echo $alphaln." = ".$letternumberln."<br />";
}
?>
$ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8);
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
//make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
//Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
//now loop through each name one by one to get the values of each letter in the name
//first name
for($i=0; $i<$lenfn; $i++)
{
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
echo $alphafn." = ".$letternumberfn."<br />";
}
echo "<br />";
//middle name
for($i=0; $i<$lenmn; $i++)
{
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
echo $alphamn." = ".$letternumbermn."<br />";
}
echo "<br />";
//last name
for($i=0; $i<$lenln; $i++)
{
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
echo $alphaln." = ".$letternumberln."<br />";
}
?>
- <?php
- $ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8);
- $firstname = "Thomas";
- $middlename = "John";
- $lastname = "Hancock";
- //make all names upper case. to avoid messing with small letters.
- $firstname = strtoupper($firstname);
- $middlename = strtoupper($middlename);
- $lastname = strtoupper($lastname);
- //Find the number of letters in each name
- $lenfn = strlen($firstname);
- $lenmn = strlen($middlename);
- $lenln = strlen($lastname);
- //now loop through each name one by one to get the values of each letter in the name
- //first name
- for($i=0; $i<$lenfn; $i++)
- {
- $alphafn = $firstname[$i];
- $letternumberfn = $ar[$alphafn];
- echo $alphafn." = ".$letternumberfn."<br />";
- }
- echo "<br />";
- //middle name
- for($i=0; $i<$lenmn; $i++)
- {
- $alphamn = $middlename[$i];
- $letternumbermn = $ar[$alphamn];
- echo $alphamn." = ".$letternumbermn."<br />";
- }
- echo "<br />";
- //last name
- for($i=0; $i<$lenln; $i++)
- {
- $alphaln = $lastname[$i];
- $letternumberln = $ar[$alphaln];
- echo $alphaln." = ".$letternumberln."<br />";
- }
- ?>
Esto me da el siguiente resultado:
T = 2
H = 8
O = 6
M = 4
A = 1
S = 1
J = 1
O = 6
H = 8
N = 5
H = 8
A = 1
N = 5
C = 3
O = 6
C = 3
K = 2
Aquí está la parte interesante ahora.
Lo que quiero hacer es conseguir una mesa como sigue:
Código: [ Select ]
Row Firstname Middlename Lastname Total
0 --- T=2 --- J=1 --- H=8 11
1 --- T=2 --- O=6 --- H=8 16
2 --- H=8 --- 0=6 --- H=8 22
3 --- H=8 --- 0=6 --- H=8 22
4 --- H=8 --- 0=6 --- H=8 22
5 --- H=8 --- 0=6 --- H=8 22
6 --- H=8 --- 0=6 --- H=8 22
7 --- H=8 --- H=8 --- H=8 24
8 --- H=8 --- H=8 --- A=1 17
9 --- H=8 --- H=8 --- N=5 21
10 --- O=6 --- H=8 --- N=5 19
11 --- O=6 --- H=8 --- N=5 19
12 --- O=6 --- H=8 --- N=5 19
13 --- O=6 --- H=8 --- N=5 19
14 --- O=6 --- H=8 --- C=3 17
15 --- O=6 --- N=5 --- C=3 14
17 --- M=4 --- N=5 --- C=3 12
18 --- M=4 --- N=5 --- O=6 15
19 --- M=4 --- N=5 --- O=6 15
20 --- M=4 --- N=5 --- O=6 15
21 --- A=1 --- J=1 --- O=6 8
22 --- S=1 --- O=6 --- O=6 13
23 --- T=2 --- O=6 --- O=6 14
24 --- T=2 --- O=6 --- C=3 11
25 --- H=8 --- O=6 --- C=3 17
26 --- H=8 --- O=6 --- C=3 17
27 --- H=8 --- O=6 --- K=2 16
28 --- H=8 --- H=8 --- K=2 18
0 --- T=2 --- J=1 --- H=8 11
1 --- T=2 --- O=6 --- H=8 16
2 --- H=8 --- 0=6 --- H=8 22
3 --- H=8 --- 0=6 --- H=8 22
4 --- H=8 --- 0=6 --- H=8 22
5 --- H=8 --- 0=6 --- H=8 22
6 --- H=8 --- 0=6 --- H=8 22
7 --- H=8 --- H=8 --- H=8 24
8 --- H=8 --- H=8 --- A=1 17
9 --- H=8 --- H=8 --- N=5 21
10 --- O=6 --- H=8 --- N=5 19
11 --- O=6 --- H=8 --- N=5 19
12 --- O=6 --- H=8 --- N=5 19
13 --- O=6 --- H=8 --- N=5 19
14 --- O=6 --- H=8 --- C=3 17
15 --- O=6 --- N=5 --- C=3 14
17 --- M=4 --- N=5 --- C=3 12
18 --- M=4 --- N=5 --- O=6 15
19 --- M=4 --- N=5 --- O=6 15
20 --- M=4 --- N=5 --- O=6 15
21 --- A=1 --- J=1 --- O=6 8
22 --- S=1 --- O=6 --- O=6 13
23 --- T=2 --- O=6 --- O=6 14
24 --- T=2 --- O=6 --- C=3 11
25 --- H=8 --- O=6 --- C=3 17
26 --- H=8 --- O=6 --- C=3 17
27 --- H=8 --- O=6 --- K=2 16
28 --- H=8 --- H=8 --- K=2 18
- Row Firstname Middlename Lastname Total
- 0 --- T=2 --- J=1 --- H=8 11
- 1 --- T=2 --- O=6 --- H=8 16
- 2 --- H=8 --- 0=6 --- H=8 22
- 3 --- H=8 --- 0=6 --- H=8 22
- 4 --- H=8 --- 0=6 --- H=8 22
- 5 --- H=8 --- 0=6 --- H=8 22
- 6 --- H=8 --- 0=6 --- H=8 22
- 7 --- H=8 --- H=8 --- H=8 24
- 8 --- H=8 --- H=8 --- A=1 17
- 9 --- H=8 --- H=8 --- N=5 21
- 10 --- O=6 --- H=8 --- N=5 19
- 11 --- O=6 --- H=8 --- N=5 19
- 12 --- O=6 --- H=8 --- N=5 19
- 13 --- O=6 --- H=8 --- N=5 19
- 14 --- O=6 --- H=8 --- C=3 17
- 15 --- O=6 --- N=5 --- C=3 14
- 17 --- M=4 --- N=5 --- C=3 12
- 18 --- M=4 --- N=5 --- O=6 15
- 19 --- M=4 --- N=5 --- O=6 15
- 20 --- M=4 --- N=5 --- O=6 15
- 21 --- A=1 --- J=1 --- O=6 8
- 22 --- S=1 --- O=6 --- O=6 13
- 23 --- T=2 --- O=6 --- O=6 14
- 24 --- T=2 --- O=6 --- C=3 11
- 25 --- H=8 --- O=6 --- C=3 17
- 26 --- H=8 --- O=6 --- C=3 17
- 27 --- H=8 --- O=6 --- K=2 16
- 28 --- H=8 --- H=8 --- K=2 18
y así sucesivamente....
Si nos fijamos en la columna Nombre, vemos que empezamos con la primera letra del nombre y su valor.
La carta se repite según su valor. Vemos T = 2, por lo que se repite 2 veces.
Entonces tomamos la siguiente letra del primer nombre y su valor.
Otra vez se repite según su valor.
Esto es para el resto de las letras en el nombre.
Después de que hemos llegado a la última letra del nombre, se repite el proceso de comenzar nuevamente con la primera letra del nombre.
Lo mismo se aplica también para el Middlename y Lastname de columnas.
La columna Total es simplemente la suma de los valores en carta toda la fila.
Dejé al final del apellido como podíamos ir para siempre.
Lo que tengo que hacer entonces es poder limitar el número de filas que se generará.
Una vez hecho esto, entonces necesito poder seleccionar cualquier fila y ver su Total.
Si seleccione y la fila 20, quiero poder ver el número de fila y el valor Total de esa fila que sería 20 y Total de 15.
Esto es porque a veces puedo quiero la tabla imprimir, pero sólo quiero ser capaz de seleccionar una fila en la tabla y mostrar la fila y valule Total
Agradecería cualquier ayuda que alguien me pueda dar al respecto.
Gracias
http://www.schembrionics.com
The Ultimate Solutions Center
The Ultimate Solutions Center
- Anonymous
- Bot


- Registrado: 25 Feb 2008
- Mensajes: ?
- Loc: Ozzuland
- Status: Online
Diciembre 8th, 2012, 8:11 pm
- Zealous
- Guru


- Registrado: Abr 15, 2011
- Mensajes: 1195
- Loc: Sydney
- Status: Offline
Usando la base de datos MySQL haría cualquier diferencia. Introduzca sus datos en SQL y añadir sus matemáticas.
incluso utilizando Excel y exportar a SQL que luego su matemáticas de eso.
Si el va a estar usando muchos datos luego creo utilizando base de datos puede ser el camino a seguir.
incluso utilizando Excel y exportar a SQL que luego su matemáticas de eso.
Si el va a estar usando muchos datos luego creo utilizando base de datos puede ser el camino a seguir.
- wpas
- Graduate


- Registrado: Jul 12, 2010
- Mensajes: 214
- Loc: Canada
- Status: Offline
No creo que ayudaría una base de datos.
Los datos depende estrictamente en el nombre de la persona que va a cambiar todo el tiempo para ponerlo en una base de datos hará nada sin ocupar espacio.
Las filas será completamente diferentes cuando se cambia el nombre.
No quiero almacenar cualquier información.
También, podría haber más de un usuario usando la secuencia de comandos al mismo tiempo que puede crear problemas si se utiliza una base de datos.
Los datos depende estrictamente en el nombre de la persona que va a cambiar todo el tiempo para ponerlo en una base de datos hará nada sin ocupar espacio.
Las filas será completamente diferentes cuando se cambia el nombre.
No quiero almacenar cualquier información.
También, podría haber más de un usuario usando la secuencia de comandos al mismo tiempo que puede crear problemas si se utiliza una base de datos.
http://www.schembrionics.com
The Ultimate Solutions Center
The Ultimate Solutions Center
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
OK...no está seguro de lo que usted ment por una tabla pero lancé esto juntos real rápida para obtener la información en una matriz. Fue la primera puñalada que lo tomé en esto puede ser lenta, si los números en el nombre son grandes pero el concepto se corresponde con su tabla. Al menos le pondrá en una dirección.
EDICIÓN:: Ok el código es correcto pero la matriz de tabla sobrescribirá se casa en las letras para el nombre del primero y al último medio fueron los mismos, por lo que he añadido un f-/ m- / l-a la matriz de la tabla y esta solucionado este problema.
EDICIÓN:: Ok el código es correcto pero la matriz de tabla sobrescribirá se casa en las letras para el nombre del primero y al último medio fueron los mismos, por lo que he añadido un f-/ m- / l-a la matriz de la tabla y esta solucionado este problema.
PHP Código: [ Select ]
<?php
$ar = array('A' => 1,
'B' => 2,
'C' => 3,
'D' => 4,
'E' => 5,
'F' => 6,
'G' => 7,
'H' => 8,
'I' => 9,
'J' => 1,
'K' => 2,
'L' => 3,
'M' => 4,
'N' => 5,
'O' => 6,
'P' => 7,
'Q' => 8,
'R' => 9,
'S' => 1,
'T' => 2,
'U' => 3,
'V' => 4,
'W' => 5,
'X' => 6,
'Y' => 7,
'Z' => 8
);
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
// Make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
// Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
// Setup arrays to hold the values
$fname = array();
$mname = array();
$lname = array();
// Now loop through each name one by one to get the values of each letter in the name
// First name
for($i=0; $i<$lenfn; $i++) {
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
// Loop for letter value
for($j=0; $j<$letternumberfn; $j++) {
// Add to the array
$fname[] = array($alphafn => $letternumberfn);
}
}
// Middle name
for($i=0; $i<$lenmn; $i++) {
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
// Loop for letter value
for($j=0; $j<$letternumbermn; $j++) {
// Add to the array
$mname[] = array($alphamn => $letternumbermn);
}
}
// Last name
for($i=0; $i<$lenln; $i++) {
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
// Loop for letter value
for($j=0; $j<$letternumberln; $j++) {
// Add to the array
$lname[] = array($alphaln => $letternumberln);
}
}
// Setup counters
$counters = array(
"fn" => 0,
"mn" => 0,
"ln" => 0
);
// Make a table array
$table = array();
// Loop again
for($i=0; $i<max(array(count($fname), count($mname), count($lname))); $i++) {
// Check the counter vs array count
if($counters['fn'] == count($fname)) {
// Reset the counter
$counters['fn'] = 0;
}
// Check the counter vs array count
if($counters['mn'] == count($mname)) {
// Reset the counter
$counters['mn'] = 0;
}
// Check the counter vs array count
if($counters['ln'] == count($lname)) {
// Reset the counter
$counters['ln'] = 0;
}
// Add to the table array
$table[] = array(
'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
// Add to the counters
$counters['fn']++;
$counters['mn']++;
$counters['ln']++;
}
print_r($table);
?>
$ar = array('A' => 1,
'B' => 2,
'C' => 3,
'D' => 4,
'E' => 5,
'F' => 6,
'G' => 7,
'H' => 8,
'I' => 9,
'J' => 1,
'K' => 2,
'L' => 3,
'M' => 4,
'N' => 5,
'O' => 6,
'P' => 7,
'Q' => 8,
'R' => 9,
'S' => 1,
'T' => 2,
'U' => 3,
'V' => 4,
'W' => 5,
'X' => 6,
'Y' => 7,
'Z' => 8
);
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
// Make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
// Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
// Setup arrays to hold the values
$fname = array();
$mname = array();
$lname = array();
// Now loop through each name one by one to get the values of each letter in the name
// First name
for($i=0; $i<$lenfn; $i++) {
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
// Loop for letter value
for($j=0; $j<$letternumberfn; $j++) {
// Add to the array
$fname[] = array($alphafn => $letternumberfn);
}
}
// Middle name
for($i=0; $i<$lenmn; $i++) {
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
// Loop for letter value
for($j=0; $j<$letternumbermn; $j++) {
// Add to the array
$mname[] = array($alphamn => $letternumbermn);
}
}
// Last name
for($i=0; $i<$lenln; $i++) {
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
// Loop for letter value
for($j=0; $j<$letternumberln; $j++) {
// Add to the array
$lname[] = array($alphaln => $letternumberln);
}
}
// Setup counters
$counters = array(
"fn" => 0,
"mn" => 0,
"ln" => 0
);
// Make a table array
$table = array();
// Loop again
for($i=0; $i<max(array(count($fname), count($mname), count($lname))); $i++) {
// Check the counter vs array count
if($counters['fn'] == count($fname)) {
// Reset the counter
$counters['fn'] = 0;
}
// Check the counter vs array count
if($counters['mn'] == count($mname)) {
// Reset the counter
$counters['mn'] = 0;
}
// Check the counter vs array count
if($counters['ln'] == count($lname)) {
// Reset the counter
$counters['ln'] = 0;
}
// Add to the table array
$table[] = array(
'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
// Add to the counters
$counters['fn']++;
$counters['mn']++;
$counters['ln']++;
}
print_r($table);
?>
- <?php
- $ar = array('A' => 1,
- 'B' => 2,
- 'C' => 3,
- 'D' => 4,
- 'E' => 5,
- 'F' => 6,
- 'G' => 7,
- 'H' => 8,
- 'I' => 9,
- 'J' => 1,
- 'K' => 2,
- 'L' => 3,
- 'M' => 4,
- 'N' => 5,
- 'O' => 6,
- 'P' => 7,
- 'Q' => 8,
- 'R' => 9,
- 'S' => 1,
- 'T' => 2,
- 'U' => 3,
- 'V' => 4,
- 'W' => 5,
- 'X' => 6,
- 'Y' => 7,
- 'Z' => 8
- );
- $firstname = "Thomas";
- $middlename = "John";
- $lastname = "Hancock";
- // Make all names upper case. to avoid messing with small letters.
- $firstname = strtoupper($firstname);
- $middlename = strtoupper($middlename);
- $lastname = strtoupper($lastname);
- // Find the number of letters in each name
- $lenfn = strlen($firstname);
- $lenmn = strlen($middlename);
- $lenln = strlen($lastname);
- // Setup arrays to hold the values
- $fname = array();
- $mname = array();
- $lname = array();
- // Now loop through each name one by one to get the values of each letter in the name
- // First name
- for($i=0; $i<$lenfn; $i++) {
- $alphafn = $firstname[$i];
- $letternumberfn = $ar[$alphafn];
- // Loop for letter value
- for($j=0; $j<$letternumberfn; $j++) {
- // Add to the array
- $fname[] = array($alphafn => $letternumberfn);
- }
- }
- // Middle name
- for($i=0; $i<$lenmn; $i++) {
- $alphamn = $middlename[$i];
- $letternumbermn = $ar[$alphamn];
- // Loop for letter value
- for($j=0; $j<$letternumbermn; $j++) {
- // Add to the array
- $mname[] = array($alphamn => $letternumbermn);
- }
- }
- // Last name
- for($i=0; $i<$lenln; $i++) {
- $alphaln = $lastname[$i];
- $letternumberln = $ar[$alphaln];
- // Loop for letter value
- for($j=0; $j<$letternumberln; $j++) {
- // Add to the array
- $lname[] = array($alphaln => $letternumberln);
- }
- }
- // Setup counters
- $counters = array(
- "fn" => 0,
- "mn" => 0,
- "ln" => 0
- );
- // Make a table array
- $table = array();
- // Loop again
- for($i=0; $i<max(array(count($fname), count($mname), count($lname))); $i++) {
- // Check the counter vs array count
- if($counters['fn'] == count($fname)) {
- // Reset the counter
- $counters['fn'] = 0;
- }
- // Check the counter vs array count
- if($counters['mn'] == count($mname)) {
- // Reset the counter
- $counters['mn'] = 0;
- }
- // Check the counter vs array count
- if($counters['ln'] == count($lname)) {
- // Reset the counter
- $counters['ln'] = 0;
- }
- // Add to the table array
- $table[] = array(
- 'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
- 'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
- 'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
- "total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
- );
- // Add to the counters
- $counters['fn']++;
- $counters['mn']++;
- $counters['ln']++;
- }
- print_r($table);
- ?>
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
Leí tu post nuevamente y lo convierten en una función con un limitador que pueden limitar el número de registros devueltos por la función.
PHP Código: [ Select ]
<?php
function name_counter($firstname, $middlename, $lastname, $limit = false) {
$ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8
);
// Make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
// Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
// Setup arrays to hold the values
$fname = array();
$mname = array();
$lname = array();
// Now loop through each name one by one to get the values of each letter in the name
// First name
for($i=0; $i<$lenfn; $i++) {
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
// Loop for letter value
for($j=0; $j<$letternumberfn; $j++) {
// Add to the array
$fname[] = array($alphafn => $letternumberfn);
}
}
// Middle name
for($i=0; $i<$lenmn; $i++) {
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
// Loop for letter value
for($j=0; $j<$letternumbermn; $j++) {
// Add to the array
$mname[] = array($alphamn => $letternumbermn);
}
}
// Last name
for($i=0; $i<$lenln; $i++) {
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
// Loop for letter value
for($j=0; $j<$letternumberln; $j++) {
// Add to the array
$lname[] = array($alphaln => $letternumberln);
}
}
// Setup counters
$counters = array(
"fn" => 0,
"mn" => 0,
"ln" => 0
);
// Make a table array
$table = array();
// Setup the limit
$limit = ($limit) ? $limit : max(array(count($fname), count($mname), count($lname)));
// Loop again
for($i=0; $i<$limit; $i++) {
// Check the counter vs array count
if($counters['fn'] == count($fname)) {
// Reset the counter
$counters['fn'] = 0;
}
// Check the counter vs array count
if($counters['mn'] == count($mname)) {
// Reset the counter
$counters['mn'] = 0;
}
// Check the counter vs array count
if($counters['ln'] == count($lname)) {
// Reset the counter
$counters['ln'] = 0;
}
// Add to the table array
$table[] = array(
'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
// Add to the counters
$counters['fn']++;
$counters['mn']++;
$counters['ln']++;
}
// Return the table
return $table;
}
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
//$table1 = name_counter($firstname, $middlename, $lastname);
$table2 = name_counter($firstname, $middlename, $lastname, 20);
// Record 1
echo $table2[0]['total'] . '<br />';
// Record 20
echo $table2[19]['total'] . '<br />';
echo '<pre>';
print_r($table2);
echo '</pre>';
?>
function name_counter($firstname, $middlename, $lastname, $limit = false) {
$ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8
);
// Make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
// Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
// Setup arrays to hold the values
$fname = array();
$mname = array();
$lname = array();
// Now loop through each name one by one to get the values of each letter in the name
// First name
for($i=0; $i<$lenfn; $i++) {
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
// Loop for letter value
for($j=0; $j<$letternumberfn; $j++) {
// Add to the array
$fname[] = array($alphafn => $letternumberfn);
}
}
// Middle name
for($i=0; $i<$lenmn; $i++) {
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
// Loop for letter value
for($j=0; $j<$letternumbermn; $j++) {
// Add to the array
$mname[] = array($alphamn => $letternumbermn);
}
}
// Last name
for($i=0; $i<$lenln; $i++) {
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
// Loop for letter value
for($j=0; $j<$letternumberln; $j++) {
// Add to the array
$lname[] = array($alphaln => $letternumberln);
}
}
// Setup counters
$counters = array(
"fn" => 0,
"mn" => 0,
"ln" => 0
);
// Make a table array
$table = array();
// Setup the limit
$limit = ($limit) ? $limit : max(array(count($fname), count($mname), count($lname)));
// Loop again
for($i=0; $i<$limit; $i++) {
// Check the counter vs array count
if($counters['fn'] == count($fname)) {
// Reset the counter
$counters['fn'] = 0;
}
// Check the counter vs array count
if($counters['mn'] == count($mname)) {
// Reset the counter
$counters['mn'] = 0;
}
// Check the counter vs array count
if($counters['ln'] == count($lname)) {
// Reset the counter
$counters['ln'] = 0;
}
// Add to the table array
$table[] = array(
'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
// Add to the counters
$counters['fn']++;
$counters['mn']++;
$counters['ln']++;
}
// Return the table
return $table;
}
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
//$table1 = name_counter($firstname, $middlename, $lastname);
$table2 = name_counter($firstname, $middlename, $lastname, 20);
// Record 1
echo $table2[0]['total'] . '<br />';
// Record 20
echo $table2[19]['total'] . '<br />';
echo '<pre>';
print_r($table2);
echo '</pre>';
?>
- <?php
- function name_counter($firstname, $middlename, $lastname, $limit = false) {
- $ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8
- );
- // Make all names upper case. to avoid messing with small letters.
- $firstname = strtoupper($firstname);
- $middlename = strtoupper($middlename);
- $lastname = strtoupper($lastname);
- // Find the number of letters in each name
- $lenfn = strlen($firstname);
- $lenmn = strlen($middlename);
- $lenln = strlen($lastname);
- // Setup arrays to hold the values
- $fname = array();
- $mname = array();
- $lname = array();
- // Now loop through each name one by one to get the values of each letter in the name
- // First name
- for($i=0; $i<$lenfn; $i++) {
- $alphafn = $firstname[$i];
- $letternumberfn = $ar[$alphafn];
- // Loop for letter value
- for($j=0; $j<$letternumberfn; $j++) {
- // Add to the array
- $fname[] = array($alphafn => $letternumberfn);
- }
- }
- // Middle name
- for($i=0; $i<$lenmn; $i++) {
- $alphamn = $middlename[$i];
- $letternumbermn = $ar[$alphamn];
- // Loop for letter value
- for($j=0; $j<$letternumbermn; $j++) {
- // Add to the array
- $mname[] = array($alphamn => $letternumbermn);
- }
- }
- // Last name
- for($i=0; $i<$lenln; $i++) {
- $alphaln = $lastname[$i];
- $letternumberln = $ar[$alphaln];
- // Loop for letter value
- for($j=0; $j<$letternumberln; $j++) {
- // Add to the array
- $lname[] = array($alphaln => $letternumberln);
- }
- }
- // Setup counters
- $counters = array(
- "fn" => 0,
- "mn" => 0,
- "ln" => 0
- );
- // Make a table array
- $table = array();
- // Setup the limit
- $limit = ($limit) ? $limit : max(array(count($fname), count($mname), count($lname)));
- // Loop again
- for($i=0; $i<$limit; $i++) {
- // Check the counter vs array count
- if($counters['fn'] == count($fname)) {
- // Reset the counter
- $counters['fn'] = 0;
- }
- // Check the counter vs array count
- if($counters['mn'] == count($mname)) {
- // Reset the counter
- $counters['mn'] = 0;
- }
- // Check the counter vs array count
- if($counters['ln'] == count($lname)) {
- // Reset the counter
- $counters['ln'] = 0;
- }
- // Add to the table array
- $table[] = array(
- 'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
- 'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
- 'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
- "total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
- );
- // Add to the counters
- $counters['fn']++;
- $counters['mn']++;
- $counters['ln']++;
- }
- // Return the table
- return $table;
- }
- $firstname = "Thomas";
- $middlename = "John";
- $lastname = "Hancock";
- //$table1 = name_counter($firstname, $middlename, $lastname);
- $table2 = name_counter($firstname, $middlename, $lastname, 20);
- // Record 1
- echo $table2[0]['total'] . '<br />';
- // Record 20
- echo $table2[19]['total'] . '<br />';
- echo '<pre>';
- print_r($table2);
- echo '</pre>';
- ?>
- wpas
- Graduate


- Registrado: Jul 12, 2010
- Mensajes: 214
- Loc: Canada
- Status: Offline
Hola ScottG
Gran trabajo!
Si utilizo
echo $tabla2 [0] ["total"]
Obtener Total de 11 que es bueno
¿Cómo sería también mostrar las cartas en la fila
La clave parece depende de las cartas de la primera, media y apellido que no sabría para las demás filas
Entonces lo que me gustaría es ser capaz de conseguir lo siguiente para cada fila, mediante la fila 0 como ejemplo:
T, J, H, 11
Gracias
Gran trabajo!
Si utilizo
echo $tabla2 [0] ["total"]
Obtener Total de 11 que es bueno
¿Cómo sería también mostrar las cartas en la fila
La clave parece depende de las cartas de la primera, media y apellido que no sabría para las demás filas
Entonces lo que me gustaría es ser capaz de conseguir lo siguiente para cada fila, mediante la fila 0 como ejemplo:
T, J, H, 11
Gracias
http://www.schembrionics.com
The Ultimate Solutions Center
The Ultimate Solutions Center
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
Con la forma actual se escribe la función de la solución para que sea fácil sin embargo hacer un cambio rápido en el bucle en la función que se basa la salida matriz puesto sería más fácil
Cambio
// Add to the table array
$table[] = array(
'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
Para
A continuación, usted podrá utilizarlo como
Cambio
PHP Código: [ Select ]
// Add to the table array
$table[] = array(
'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
- // Add to the table array
- $table[] = array(
- 'f-' . key($fname[$counters['fn']]) => $fname[$counters['fn']][key($fname[$counters['fn']])],
- 'm-' . key($mname[$counters['mn']]) => $mname[$counters['mn']][key($mname[$counters['mn']])],
- 'l-' .key($lname[$counters['ln']]) => $lname[$counters['ln']][key($lname[$counters['ln']])],
- "total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
- );
Para
PHP Código: [ Select ]
// Add to the table array
$table[] = array(
'first_name' => array("letter" => key($fname[$counters['fn']]), "value" => $fname[$counters['fn']][key($fname[$counters['fn']])]),
'middle_name' => array("letter" => key($mname[$counters['mn']]), "value" => $mname[$counters['mn']][key($mname[$counters['mn']])]),
'last_name' => array("letter" => key($lname[$counters['ln']]), "value" => $lname[$counters['ln']][key($lname[$counters['ln']])]),
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
$table[] = array(
'first_name' => array("letter" => key($fname[$counters['fn']]), "value" => $fname[$counters['fn']][key($fname[$counters['fn']])]),
'middle_name' => array("letter" => key($mname[$counters['mn']]), "value" => $mname[$counters['mn']][key($mname[$counters['mn']])]),
'last_name' => array("letter" => key($lname[$counters['ln']]), "value" => $lname[$counters['ln']][key($lname[$counters['ln']])]),
"total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
);
- // Add to the table array
- $table[] = array(
- 'first_name' => array("letter" => key($fname[$counters['fn']]), "value" => $fname[$counters['fn']][key($fname[$counters['fn']])]),
- 'middle_name' => array("letter" => key($mname[$counters['mn']]), "value" => $mname[$counters['mn']][key($mname[$counters['mn']])]),
- 'last_name' => array("letter" => key($lname[$counters['ln']]), "value" => $lname[$counters['ln']][key($lname[$counters['ln']])]),
- "total" => ($fname[$counters['fn']][key($fname[$counters['fn']])] + $mname[$counters['mn']][key($mname[$counters['mn']])] + $lname[$counters['ln']][key($lname[$counters['ln']])])
- );
A continuación, usted podrá utilizarlo como
PHP Código: [ Select ]
// Record 1
echo $table2[0]['first_name']['letter'] .','. $table2[0]['middle_name']['letter'] .','. $table2[0]['last_name']['letter'] .','. $table2[0]['total']. '<br />';
// Record 1
echo $table2[0]['first_name']['value'] .','. $table2[0]['middle_name']['value'] .','. $table2[0]['last_name']['value'] .','. $table2[0]['total']. '<br />';
echo $table2[0]['first_name']['letter'] .','. $table2[0]['middle_name']['letter'] .','. $table2[0]['last_name']['letter'] .','. $table2[0]['total']. '<br />';
// Record 1
echo $table2[0]['first_name']['value'] .','. $table2[0]['middle_name']['value'] .','. $table2[0]['last_name']['value'] .','. $table2[0]['total']. '<br />';
- // Record 1
- echo $table2[0]['first_name']['letter'] .','. $table2[0]['middle_name']['letter'] .','. $table2[0]['last_name']['letter'] .','. $table2[0]['total']. '<br />';
- // Record 1
- echo $table2[0]['first_name']['value'] .','. $table2[0]['middle_name']['value'] .','. $table2[0]['last_name']['value'] .','. $table2[0]['total']. '<br />';
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
Si va en esa dirección podría simplificarse más cambiando el fname, arreglos de discos mname y lname así como la matriz de la tabla
PHP Código: [ Select ]
<?php
function name_counter($firstname, $middlename, $lastname, $limit = false) {
$ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8
);
// Make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
// Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
// Setup arrays to hold the values
$fname = array();
$mname = array();
$lname = array();
// Now loop through each name one by one to get the values of each letter in the name
// First name
for($i=0; $i<$lenfn; $i++) {
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
// Loop for letter value
for($j=0; $j<$letternumberfn; $j++) {
// Add to the array
$fname[] = array(
"letter" => $alphafn,
"value" => $letternumberfn
);
}
}
// Middle name
for($i=0; $i<$lenmn; $i++) {
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
// Loop for letter value
for($j=0; $j<$letternumbermn; $j++) {
// Add to the array
$mname[] = array(
"letter" => $alphamn,
"value" => $letternumbermn
);
}
}
// Last name
for($i=0; $i<$lenln; $i++) {
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
// Loop for letter value
for($j=0; $j<$letternumberln; $j++) {
// Add to the array
$lname[] = array(
"letter" => $alphaln,
"value" => $letternumberln
);
}
}
// Setup counters
$counters = array(
"fn" => 0,
"mn" => 0,
"ln" => 0
);
// Make a table array
$table = array();
// Setup the limit
$limit = ($limit) ? $limit : max(array(count($fname), count($mname), count($lname)));
// Loop again
for($i=0; $i<$limit; $i++) {
// Check the counter vs array count
if($counters['fn'] == count($fname)) {
// Reset the counter
$counters['fn'] = 0;
}
// Check the counter vs array count
if($counters['mn'] == count($mname)) {
// Reset the counter
$counters['mn'] = 0;
}
// Check the counter vs array count
if($counters['ln'] == count($lname)) {
// Reset the counter
$counters['ln'] = 0;
}
// Add to the table array
$table[] = array(
'first_name' => $fname[$counters['fn']],
'middle_name' => $mname[$counters['mn']],
'last_name' => $lname[$counters['ln']],
"total" => ($fname[$counters['fn']]['value'] + $mname[$counters['mn']]['value'] + $lname[$counters['ln']]['value'])
);
// Add to the counters
$counters['fn']++;
$counters['mn']++;
$counters['ln']++;
}
// Return the table
return $table;
}
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
//$table1 = name_counter($firstname, $middlename, $lastname);
$table2 = name_counter($firstname, $middlename, $lastname, 20);
// Record 1
echo $table2[0]['first_name']['letter'] .','. $table2[0]['middle_name']['letter'] .','. $table2[0]['last_name']['letter'] .','. $table2[0]['total']. '<br />';
// Record 20
echo $table2[19]['total'] . '<br />';
echo '<pre>';
print_r($table2);
echo '</pre>';
?>
function name_counter($firstname, $middlename, $lastname, $limit = false) {
$ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8
);
// Make all names upper case. to avoid messing with small letters.
$firstname = strtoupper($firstname);
$middlename = strtoupper($middlename);
$lastname = strtoupper($lastname);
// Find the number of letters in each name
$lenfn = strlen($firstname);
$lenmn = strlen($middlename);
$lenln = strlen($lastname);
// Setup arrays to hold the values
$fname = array();
$mname = array();
$lname = array();
// Now loop through each name one by one to get the values of each letter in the name
// First name
for($i=0; $i<$lenfn; $i++) {
$alphafn = $firstname[$i];
$letternumberfn = $ar[$alphafn];
// Loop for letter value
for($j=0; $j<$letternumberfn; $j++) {
// Add to the array
$fname[] = array(
"letter" => $alphafn,
"value" => $letternumberfn
);
}
}
// Middle name
for($i=0; $i<$lenmn; $i++) {
$alphamn = $middlename[$i];
$letternumbermn = $ar[$alphamn];
// Loop for letter value
for($j=0; $j<$letternumbermn; $j++) {
// Add to the array
$mname[] = array(
"letter" => $alphamn,
"value" => $letternumbermn
);
}
}
// Last name
for($i=0; $i<$lenln; $i++) {
$alphaln = $lastname[$i];
$letternumberln = $ar[$alphaln];
// Loop for letter value
for($j=0; $j<$letternumberln; $j++) {
// Add to the array
$lname[] = array(
"letter" => $alphaln,
"value" => $letternumberln
);
}
}
// Setup counters
$counters = array(
"fn" => 0,
"mn" => 0,
"ln" => 0
);
// Make a table array
$table = array();
// Setup the limit
$limit = ($limit) ? $limit : max(array(count($fname), count($mname), count($lname)));
// Loop again
for($i=0; $i<$limit; $i++) {
// Check the counter vs array count
if($counters['fn'] == count($fname)) {
// Reset the counter
$counters['fn'] = 0;
}
// Check the counter vs array count
if($counters['mn'] == count($mname)) {
// Reset the counter
$counters['mn'] = 0;
}
// Check the counter vs array count
if($counters['ln'] == count($lname)) {
// Reset the counter
$counters['ln'] = 0;
}
// Add to the table array
$table[] = array(
'first_name' => $fname[$counters['fn']],
'middle_name' => $mname[$counters['mn']],
'last_name' => $lname[$counters['ln']],
"total" => ($fname[$counters['fn']]['value'] + $mname[$counters['mn']]['value'] + $lname[$counters['ln']]['value'])
);
// Add to the counters
$counters['fn']++;
$counters['mn']++;
$counters['ln']++;
}
// Return the table
return $table;
}
$firstname = "Thomas";
$middlename = "John";
$lastname = "Hancock";
//$table1 = name_counter($firstname, $middlename, $lastname);
$table2 = name_counter($firstname, $middlename, $lastname, 20);
// Record 1
echo $table2[0]['first_name']['letter'] .','. $table2[0]['middle_name']['letter'] .','. $table2[0]['last_name']['letter'] .','. $table2[0]['total']. '<br />';
// Record 20
echo $table2[19]['total'] . '<br />';
echo '<pre>';
print_r($table2);
echo '</pre>';
?>
- <?php
- function name_counter($firstname, $middlename, $lastname, $limit = false) {
- $ar = array('A' => 1,'B' => 2,'C' => 3,'D' => 4,'E' => 5,'F' => 6,'G' => 7,'H' => 8,'I' => 9,'J' => 1,'K' => 2,'L' => 3,'M' => 4,'N' => 5,'O' => 6,'P' => 7,'Q' => 8,'R' => 9,'S' => 1,'T' => 2,'U' => 3,'V' => 4,'W' => 5,'X' => 6,'Y' => 7,'Z' => 8
- );
- // Make all names upper case. to avoid messing with small letters.
- $firstname = strtoupper($firstname);
- $middlename = strtoupper($middlename);
- $lastname = strtoupper($lastname);
- // Find the number of letters in each name
- $lenfn = strlen($firstname);
- $lenmn = strlen($middlename);
- $lenln = strlen($lastname);
- // Setup arrays to hold the values
- $fname = array();
- $mname = array();
- $lname = array();
- // Now loop through each name one by one to get the values of each letter in the name
- // First name
- for($i=0; $i<$lenfn; $i++) {
- $alphafn = $firstname[$i];
- $letternumberfn = $ar[$alphafn];
- // Loop for letter value
- for($j=0; $j<$letternumberfn; $j++) {
- // Add to the array
- $fname[] = array(
- "letter" => $alphafn,
- "value" => $letternumberfn
- );
- }
- }
- // Middle name
- for($i=0; $i<$lenmn; $i++) {
- $alphamn = $middlename[$i];
- $letternumbermn = $ar[$alphamn];
- // Loop for letter value
- for($j=0; $j<$letternumbermn; $j++) {
- // Add to the array
- $mname[] = array(
- "letter" => $alphamn,
- "value" => $letternumbermn
- );
- }
- }
- // Last name
- for($i=0; $i<$lenln; $i++) {
- $alphaln = $lastname[$i];
- $letternumberln = $ar[$alphaln];
- // Loop for letter value
- for($j=0; $j<$letternumberln; $j++) {
- // Add to the array
- $lname[] = array(
- "letter" => $alphaln,
- "value" => $letternumberln
- );
- }
- }
- // Setup counters
- $counters = array(
- "fn" => 0,
- "mn" => 0,
- "ln" => 0
- );
- // Make a table array
- $table = array();
- // Setup the limit
- $limit = ($limit) ? $limit : max(array(count($fname), count($mname), count($lname)));
- // Loop again
- for($i=0; $i<$limit; $i++) {
- // Check the counter vs array count
- if($counters['fn'] == count($fname)) {
- // Reset the counter
- $counters['fn'] = 0;
- }
- // Check the counter vs array count
- if($counters['mn'] == count($mname)) {
- // Reset the counter
- $counters['mn'] = 0;
- }
- // Check the counter vs array count
- if($counters['ln'] == count($lname)) {
- // Reset the counter
- $counters['ln'] = 0;
- }
- // Add to the table array
- $table[] = array(
- 'first_name' => $fname[$counters['fn']],
- 'middle_name' => $mname[$counters['mn']],
- 'last_name' => $lname[$counters['ln']],
- "total" => ($fname[$counters['fn']]['value'] + $mname[$counters['mn']]['value'] + $lname[$counters['ln']]['value'])
- );
- // Add to the counters
- $counters['fn']++;
- $counters['mn']++;
- $counters['ln']++;
- }
- // Return the table
- return $table;
- }
- $firstname = "Thomas";
- $middlename = "John";
- $lastname = "Hancock";
- //$table1 = name_counter($firstname, $middlename, $lastname);
- $table2 = name_counter($firstname, $middlename, $lastname, 20);
- // Record 1
- echo $table2[0]['first_name']['letter'] .','. $table2[0]['middle_name']['letter'] .','. $table2[0]['last_name']['letter'] .','. $table2[0]['total']. '<br />';
- // Record 20
- echo $table2[19]['total'] . '<br />';
- echo '<pre>';
- print_r($table2);
- echo '</pre>';
- ?>
- wpas
- Graduate


- Registrado: Jul 12, 2010
- Mensajes: 214
- Loc: Canada
- Status: Offline
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
- wpas
- Graduate


- Registrado: Jul 12, 2010
- Mensajes: 214
- Loc: Canada
- Status: Offline
Hola ScottG
He estado probando utilizando firstname, middlename y lastname y funciona perfectamente.
Me di cuenta de que si utilizo sólo firstname y lastname, no middlename, conseguir la siguiente ADVERTENCIA:
ADVERTENCIA: key() espera que parámetro 1 be array, null en usual...
Parece que se debe colocar en un segundo nombre.
Puede esto ser fijo por lo que si no se utiliza un segundo nombre, no me sale la advertencia.
Gracias
He estado probando utilizando firstname, middlename y lastname y funciona perfectamente.
Me di cuenta de que si utilizo sólo firstname y lastname, no middlename, conseguir la siguiente ADVERTENCIA:
ADVERTENCIA: key() espera que parámetro 1 be array, null en usual...
Parece que se debe colocar en un segundo nombre.
Puede esto ser fijo por lo que si no se utiliza un segundo nombre, no me sale la advertencia.
Gracias
http://www.schembrionics.com
The Ultimate Solutions Center
The Ultimate Solutions Center
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
Con el último mensaje que había publicado la función quité el uso de key(). He probado con
Y consiguió no sólo avisos de advertencia. En cuanto al viejo código podría agregar
después del para bucles de la compilación esto hará que los arreglos de discos que les matrices tienen arreglos en el este, esto detendrá las advertencias pero darle avisos como la versión más reciente de la función
PHP Código: [ Select ]
error_reporting(E_ALL);
$firstname = "Thomas";
$middlename = "";
$lastname = "Hancock";
$table2 = name_counter($firstname, $middlename, $lastname, 20);
$firstname = "Thomas";
$middlename = "";
$lastname = "Hancock";
$table2 = name_counter($firstname, $middlename, $lastname, 20);
- error_reporting(E_ALL);
- $firstname = "Thomas";
- $middlename = "";
- $lastname = "Hancock";
- $table2 = name_counter($firstname, $middlename, $lastname, 20);
Y consiguió no sólo avisos de advertencia. En cuanto al viejo código podría agregar
PHP Código: [ Select ]
// Check for arrays
$fname[0] = (is_array($fname[0])) ? $fname[0] : array();
$mname[0] = (is_array($mname[0])) ? $mname[0] : array();
$lname[0] = (is_array($lname[0])) ? $lname[0] : array();
$fname[0] = (is_array($fname[0])) ? $fname[0] : array();
$mname[0] = (is_array($mname[0])) ? $mname[0] : array();
$lname[0] = (is_array($lname[0])) ? $lname[0] : array();
- // Check for arrays
- $fname[0] = (is_array($fname[0])) ? $fname[0] : array();
- $mname[0] = (is_array($mname[0])) ? $mname[0] : array();
- $lname[0] = (is_array($lname[0])) ? $lname[0] : array();
después del para bucles de la compilación esto hará que los arreglos de discos que les matrices tienen arreglos en el este, esto detendrá las advertencias pero darle avisos como la versión más reciente de la función
- wpas
- Graduate


- Registrado: Jul 12, 2010
- Mensajes: 214
- Loc: Canada
- Status: Offline
- ScottG
- Proficient


- Registrado: Jul 06, 2010
- Mensajes: 266
- Status: Offline
- Anonymous
- Bot


- Registrado: 25 Feb 2008
- Mensajes: ?
- Loc: Ozzuland
- Status: Online
Diciembre 11th, 2012, 3:50 pm
Página 1 de 1
Para responder a este tema que necesita para ingresar o registrarse. Es gratis.
Publicar Información
- Total de mensajes en este tema: 15 mensajes
- Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 111 invitados
- No puede abrir nuevos temas en este Foro
- No puede responder a temas en este Foro
- No puede editar sus mensajes en este Foro
- No puede borrar sus mensajes en este Foro
- No puede enviar adjuntos en este Foro
