Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,Estou com um problema de lógica e não estou conseguindo matar a charada.Lembrando que não precisa ser músico para me ajudar, ok? eheeeehehehBom, estou montando um sistema para troca de acordes para o meu site e não estou conseguindo montar um lógica para isso, montei uma gambiarra, que tenho até vergonha de postar aqui, eheeeehehe, ficou medonha mesmo.Idéia:Tenho uma lista de acordes, ex.:
$lista="G/D>C/E>D7>Fm7(9)>G>Cm/Eb>A#/D";
Filtrei o que não tenho interece:
$listt=ereg_replace("[123456789mc)M°]",">", $lista);
Separei os dados em um array:
$list=explode(">",$listt);......
E agora atribui valores para cada acorde (Letras em maiúsculo):
function nome_n($r){switch($r){case "C": $ac=1; break;................}return $ac;}
Agora para fazer a mudança, pego os valores e somo ou subtraio o que for necessário de acordo com a mudança, pode ser +1, +2, -1, -10:
function troca($y,$f){$tt=nome_n($y);....................}
Logo após isso na mesma função anterior tem outra função "nome_m" que converte o resultado em numérico em acordes novamente, mas já com a mudança.
function nome_m($d){switch($d){case '1': $nt="C";break;................................}return $nt;}
Agora que vem minha dor de cabeça, qual a melhor forma de fazer com que o código altere a $lista com os dados gerados pela função troca();???Tentei o str_replace e o foreach, mas ficou horrível, ou usei a lógica erra, gostaria que se possível vcs me dessem uma idéia de como poderia fazer.ResolvidoValeu e T+ http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Olá,
Consegui resolver, mudei a forma de raciocínio, resolvi separar caractere por caractere em um array e filtrar.
Ficou bem mais rápido e funcionou legal.
Mas valeu http://forum.imasters.com.br/public/style_emoticons/default/joia.gif