|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I was thinking along these lines initially but didnt know much about arrays.
So thought the easiest way was to use two separate fields. However the two fields match, in that the commar separated numbers in one field match the commar separated numbers in the other. Ive used $percentarray = explode(",", $brpercentgroup); to create two separate keyed arrays for each field. If I combined the fields (easy at this stage as the table has only recently been created) how would I extract the field contents into an associative array, as I presume that is what will be needed. How would I modify it to create an associative array? would it involve using the '=>' in the glue parameter somehow? ie field contains 0,100,3,90,4,80,5,85,9,70 into an associative 0=>100,3=>90,4=>80,5=>85,9=>70 If the array was called $percentarray, I presume I would then use; foreach ($percentarray as $yearvalue=>$percentvalue) { to extract the two values to use in the function below? ************* Function taper_rel($aim, $yearsheld,$byrsheldgroup,$bpercentgroup,$nbyrshel dgroup,$nbpercentgroup){ if($aim = 1){ $yearsarray = explode(",", $byrsheldgroup); $percentarray = explode(",", $brpercentgroup); }elseif($aim = 0){ $yearsarray = explode(",", $nbyrsheldgroup); $percentarray = explode(",", $nbrpercentgroup); } foreach ($yearsarray as &$yearvalue, $percentarray as &$percentvalue) { if ($yearsheld==$yearvalue){ return $percentvalue; } } unset($yearvalue); unset($percentvalue); } *********************** Ian "C." <colin.mckinnon@gmail.com> wrote in message news:1194110709.612682.161550@19g2000hsx.googlegro ups.com... > On 3 Nov, 15:15, "mantrid" <ian.dan...@virgin.net> wrote: > > Hello > > I wish to extract two arrays and use them simultaneously in a for each > > statement > > Ive tried > > 'foreach ($yearsarray as &$yearvalue, $percentarray as &$percentvalue) {' > > and also > > 'foreach ($yearsarray as &$yearvalue AND $percentarray as &$percentvalue) {' > > > > If each entry in one array matches one in the other then: > > foreach ($yeararray as $index=>$year) { > print $year, $percentarray[$index]; > } > > Even if these were not compound data structures (as indicated in the > remainder of your code) your data design is a mess; both values > should be held in the same record in the same array. > > C. > |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
If your arrays are in parallel, the you don't have to do anything fancy
with the language construct. If I had two arrays that were parallel like that (having corresponding values in the same positions), I would combine them like so: $array1 ("apple", "orange", "banana"); $array2 ("pie", "juice", "smoothy"); $array3 = array(); for ($i = 0; $i < count($array1); ++$i) { $array3[$array1[$i]] = $array2[$i]; } And then you could use the foreach ($array3 as $fruit=>$tastyTrest) {} Or call on them as $array3["apple"];, etc ~A! mantrid took the time to say: > I was thinking along these lines initially but didnt know much about arrays. > So thought the easiest way was to use two separate fields. However the two > fields match, in that the commar separated numbers in one field match the > commar separated numbers in the other. > Ive used > $percentarray = explode(",", $brpercentgroup); > to create two separate keyed arrays for each field. > > If I combined the fields (easy at this stage as the table has only recently > been created) how would I extract the field contents into an associative > array, as I presume that is what will be needed. > How would I modify it to create an associative array? > would it involve using the '=>' in the glue parameter somehow? > > ie field contains 0,100,3,90,4,80,5,85,9,70 > into an associative 0=>100,3=>90,4=>80,5=>85,9=>70 > If the array was called $percentarray, I presume I would then use; > > foreach ($percentarray as $yearvalue=>$percentvalue) { > > to extract the two values to use in the function below? > > > ************* > Function taper_rel($aim, > $yearsheld,$byrsheldgroup,$bpercentgroup,$nbyrshel dgroup,$nbpercentgroup){ > if($aim = 1){ > $yearsarray = explode(",", $byrsheldgroup); > $percentarray = explode(",", $brpercentgroup); > }elseif($aim = 0){ > $yearsarray = explode(",", $nbyrsheldgroup); > $percentarray = explode(",", $nbrpercentgroup); > } > foreach ($yearsarray as &$yearvalue, $percentarray as &$percentvalue) { > if ($yearsheld==$yearvalue){ > return $percentvalue; > } > } > > unset($yearvalue); > unset($percentvalue); > } > *********************** > Ian > > > "C." <colin.mckinnon@gmail.com> wrote in message > news:1194110709.612682.161550@19g2000hsx.googlegro ups.com... >> On 3 Nov, 15:15, "mantrid" <ian.dan...@virgin.net> wrote: >>> Hello >>> I wish to extract two arrays and use them simultaneously in a for each >>> statement >>> Ive tried >>> 'foreach ($yearsarray as &$yearvalue, $percentarray as &$percentvalue) > {' >>> and also >>> 'foreach ($yearsarray as &$yearvalue AND $percentarray as > &$percentvalue) {' >> If each entry in one array matches one in the other then: >> >> foreach ($yeararray as $index=>$year) { >> print $year, $percentarray[$index]; >> } >> >> Even if these were not compound data structures (as indicated in the >> remainder of your code) your data design is a mess; both values >> should be held in the same record in the same array. >> >> C. >> > > > |
|
![]() |
| Outils de la discussion | |
|
|