2010-07-26 2 views
0

J'ai une fonction qui fait beaucoup de calculs.Comment écrire ce tableau dans une méthode simple?

$arrleft et $arrright sont deux tableaux différents. ce que je fais ici est que je combine deux pour produire ensemble la sortie pour mon application actuelle. ce que j'ai fait est une méthode simple et elle mange beaucoup d'espace et de temps. ce que je veux, c'est si quelqu'un peut faire ce code à quelques lignes plus courtes (je sais que cela peut être en boucle). mais ne peux pas entrer par moi-même alors je le mets ici pour votre opinion.

$arrleft = explode(',' , $data1); 
$arrright = explode(',' , $data2); if(isset($data1,$data2)){if(isset($arrleft[0],$arrright[0],$arrleft[1],$arrright[1],$arrleft[2],$arrright[2],$arrleft[3],$arrright[3],$arrleft[4],$arrright[4])) 
    { $totalnumber = ($valueset+1)//calculate total number of variables set + 1 here $valueset = 4 so $total number (4+1)=5 
     $value = (0, 0, $arrleft[0]); 
     $value1 = (0, 1, $arrright[0]); 
     $value2 = (1, 0, $arrleft[1]); 
     $value3 = (1, 1, $arrright[1]); 
     $value4 = (2, 0, $arrleft[2]); 
     $value5 = (2, 1, $arrright[2]); 
     $value6 = (3, 0, $arrleft[3]); 
     $value7 = (3, 1, $arrright[3]); 
     $value8 = (4, 0, $arrleft[4]); 
     $value9 = (4, 1, $arrright[4]); 
    }else if(isset($arrleft[0],$arrright[0],$arrleft[1],$arrright[1],$arrleft[2],$arrright[2],$arrleft[3],$arrright[3])){ 
     $totalnumber = ($valueset+1)//calculate total number of variables set + 1 here $valueset = 3 so $total number (3+1)=4 
     $value = (0, 0, $arrleft[0]); 
     $value1 = (0, 1, $arrright[0]); 
     $value2 = (1, 0, $arrleft[1]); 
     $value3 = (1, 1, $arrright[1]); 
     $value4 = (2, 0, $arrleft[2]); 
     $value5 = (2, 1, $arrright[2]); 
     $value6 = (3, 0, $arrleft[3]); 
     $value7 = (3, 1, $arrright[3]); 
    }else if(isset($arrleft[0],$arrright[0],$arrleft[1],$arrright[1],$arrleft[2],$arrright[2])){ 
     $totalnumber = ($valueset+1)//calculate total number of variables set + 1 here $valueset = 2 so $total number (2+1)=3 
     $value = (0, 0, $arrleft[0]); 
     $value1 = (0, 1, $arrright[0]); 
     $value2 = (1, 0, $arrleft[1]); 
     $value3 = (1, 1, $arrright[1]); 
     $value4 = (2, 0, $arrleft[2]); 
     $value5 = (2, 1, $arrright[2]); 
    }else{} 
} 

J'ai réduit beaucoup de lignes ici en raison d'un problème d'espace.

+0

"Je ne mentionne pas le code réel, mais je vous donne une illustration de la réalité afin que vous obteniez une image claire." - L'image n'est pas claire du tout. En fait, le code que vous avez publié, tel qu'il est écrit, ne produit rien de productif. Vous êtes juste en train de réattribuer '$ value' encore et encore. S'il vous plaît dites-nous ce que vous essayez réellement de faire. – Charles

+0

désolé $ valeur est en fait différentes variables.les noms réels de ces variables sont différents. en raison de la politique de l'entreprise, je ne peux pas mentionner le même code. donc je le réécris. – mathew

Répondre

0

Peut-être que cela peut vous aider.

$arrleft = explode(',' , $data1); 
$arrright = explode(',' , $data2); 
$countleft = count($arrleft); 
$countright = count($arrright); 

if(isset($data1, $data2) && $countleft == $countright) 
{ // i think that you want from these arrays to have same size 
    $totalnumber = $countleft; // also $countright 
    $values = array(); // you might save these values into array 
    $j = 0; 

    for($i = 0; $i < $totalnumber; $i++) 
    { // i am not sure, but don't you want make from these values an array? 
    $values[$j] = array($i, 0, $arrleft[$i]); 
    $values[$j + 1] = array($i, 1, $arrright[$i]); 
    $j += 2; 
    } 
} 
Questions connexes