Newsgroup: it.comp.www.php
Titolo: algoritmo semplice (ma non per me)

So che č un algoritmo molto semplice...
ma lo devo sviluppare in php, linguaggio che non conosco bene, per cui
vi chiederei un piccolo aiuto.
Ecco di che si tratta:
Ho due misure (di due scatole)  espresse sotto forma di stringa: 
ad esempio 
misura1 = '30x10.5x25'
e
misura2 = '40x15x13.9'
dovrei calcolare se la scatola 2 puň esser contenuta nella scatola 1.
In parole dovrei:
- trasformare le due stringhe in due array di numeri
- ordinare gli elementi dei due array (dalla misura piů grande alla
piů piccola) avendo quindi array1=[30,25,10.5] e array2=[40,15,13.9]
confrontando gli elementi dei due array, se tutti gli elementi di
array1 sono maggiori dei corrispondenti elementi di array2 vuol dire
che la scatola2 puň entrare nella scatola1.
Ma in php come si scrive??
Grazie a tutti.


Usa explode:
http://it.php.net/manual/en/function.explode.php
Ciao 

> ma lo devo sviluppare in php, linguaggio che non conosco bene, per cui
Dovresti usare anche un form per l'inserimento dei dati delle due 
scatole.... e poi scusami ma a cosa puo servire una cosa simile? è un 
esercizio? 

 esercizio? 
Secondo me e` un esercizio scolastico e se lo voleva far fare da noi, ma
dandogli il beneficio del dubbio si puo` pensare che possa servire per
un sito di e-commerce per capire quante scatole da spedizione servano
per spedire degli oggetti inscatolati di diverse dimensioni e se possano
essere spediti.
Il fatto e` che un problema del genere non e` banale per n scatole da
inserire in m scatoloni, con n e m diversi da 1, caso tipico di un
e-commerce, e c'e` una intera materia che si occupa di queste cose:
Ricerca Operativa.
Bye.

essere spediti.
In effetti ci avevo pensato anche io che poteva essere qualcosa di inerente 
all'e-commerce... mmm 

essere spediti.
Parzialmente esatto.
Ho un imballo standard (o in alternativa si fa a mano).
Se la scatola del prodotto sta nello scatolone imballo-standard
l'ordine viene gestito in un modo, altrimenti si fa tutto a mano.

 vi chiederei un piccolo aiuto.
Premetto che non sono un esperto :P Sicuramente ci sono modi migliori per 
farlo cmq questo codice potrebbe andare bene:
<?
$a1=array(50,25,14);
$a2=array(40,15,13.9);
if ($a1[0] > $a2[0]) {
 if ($a1[1] > $a2[1]) {
  if ($a1[2] > $a2[2]) {
   echo "La scatola standard è ideale!";
   }else{
   echo "La scatola è piccola";
   }
 }else{
 echo "La scatola è piccola";
 }
}else{
 echo "La scatola è piccola";
}
?>
XwB 

$a2=array(40,15,13.9);
ma come faccio per ordinare l'interno di ogni array?


 ma come faccio per ordinare l'interno di ogni array?
Semplice crei un form html a sei campi, 3 per ogni array. 

 XwB
scusa ma va bene che l'ottimizzazione non e' essenziale ma qui un minimo non
guasta..
<?php
$item_xyz = array(50,25,14);
$box_xyz = array(40,15,13.9);
if($item_xyz[0] >= $box_xyz[0] AND
   $item_xyz[1] >= $box_xyz[1] AND
   $item_xyz[2] >= $box_xyz[2]
  )
   echo 'La scatola standard è ideale!';
  else
   echo 'La scatola è piccola!';
?>
o anche crearti una funzione (accetta stringhe con spazi e 'x', se la
scatola non e' abbastanza grande od una o tutte e due le stringhe non sono
corrette ritorna FALSE)..
<?php
error_reporting(E_ALL);
function check_size($item, $box)
{
 $item = str_replace(' ', '', $item);
 $item = str_replace(',', '.', $item);
 $item = spliti('x', $item, 3);
 
 $box = str_replace(' ', '', $box);
 $box = str_replace(',', '.', $box);
 $box = spliti('x', $box, 3);
 
 for($key = 0; @is_numeric($item[$key]) AND @is_numeric($box[$key]); $key++) 
  if($item[$key] < $box[$key])
   return FALSE;
if($key == 3)
  return TRUE;
}
$box1 = '         234 x 34.4 x 12.2';
$box2 = '46,6 x 23,2 x 12,1';
echo (check_size($box1, $box2)) ? "Scatola" : "Manuale";
?>
fallisce con stringhe del tipo 123 x 456x 789 123
ma di fatto.. puo' e dove essere migliorata..
-- 
www.iuz-lab.info

> farlo
[/mi quoto]
Infatti ho specificato! :)



intendevo se ho un array  a=[4,2,6] come faccio ad ordinarlo facendolo
diventare a=[2,4,6]?
Grazie ancora a tutti.

 ha scritto nel messaggio 
news:caah111bp5cdn31tq...@4ax.com...

Usa un algoritmo di ordinamento, il più rudimentale è quello basato sullo 
scambio successivo, in pratica se il vettore è formato da tre elementi 
a1,a2,a3, devi fare tre confronti:
1) a1 con a2
2) a1 con a3
3) a2 con a3
e per ogni confronto se a1 è maggiore di a2 fai lo scambio ovvero qualcosa 
del tipo:
temp = a1;
a1 = a2
a2 = temp
e hai risolto.
Cooper.
-- 
BlueWare Web Agency
   [http:] 
www.blueware.it
   [msn:] 
coo...@blueware.it
   [icq:] 146781935 

 diventare a=[2,4,6]?
RTFM
http://www.php.net/manual/en/function.sort.php
Bye.

A cosa serve ordinare l'array?
Potresti perdere l'ordine dei lati e la scatola "reale" potrebbe non
entrare.

 fatto non succede nulla