[Php-it] Array multidimensionali

Jonathan Stoppani jonathan at garetjax.info
Fri Jun 1 00:24:54 CEST 2007


On Jun 1, 2007, at 12:05 , Andrea Ambu wrote:

>      foreach($s2 as $k => $v)
>            {
>                $i = $k + $c;
>                $i = $i . ''; // [1]
>                $a[$i] = $i;
>                $b = $a[$i];  // [2]
>                $b['start'] = intval(intval($a[$k]['start']) +
> intval($v['start'])) . ''; // [3]
>                echo $a[$k]['start'] . "+" . $v['start'] . "=" . $b 
> ['start']
> . "\n";
>                $b['end'] = $v['end'];
>                $b['txt'] = $v['txt'];
>                $a[$i] = $b;
>            }
>
>
> Come mai se sia $a[$k]['start']  che $v['start'] vengono letti  
> correttamente
> a $b['start']  viene assegnata la somma dei soli primi due numeri?

> un esempio di stampa e':
> 3278940+3720220=6
> 3280530+3722310=7
Non vedo la somma dei primi due numeri

> fa lo stesso anche con la stringa $v['txt'] e tutti gli altri  
> campi... cosa
> sbaglio? son sicuro che e' una niubbata pero' non capisco che  
> sbaglio...
>
> Grazie per gli eventuali aiuti ;)

Non l'ho studiato tanto, è mezzanotte (-.-), comunque ci sono 3 cose  
che sicuramente non servono (anche se lo script dovrebbe funzionare  
ugualmente):
1: A cosa ti serve la conversione dell'intero in stringa?
2: Non è meglio un $b = $i?
3a: E qui viene il bello... $i è un intero, convertito implicitamente  
in stringa che assegni a $a[$i]. Questo valore poi lo assegni a $b  
che diventa quindi una stringa. Come fai dopo a fare $b['start'], e  
quindi trattare l'intero (che è una stringa) come un array associativo?
3b: A cosa servono tutti quegli intval? Sicuramente quello più  
esterno è inutile.

Credo che il problema risieda proprio in 3a... guardati un po' meglio  
i tipi e come php tratta le operazioni e conversioni tra tipi diversi  
(sopratutto tra scalari e non)


-- 
Best regards,
Jonathan Stoppani ~ http://garetjax.info/blog




More information about the Php-it mailing list