arrays - PHP - Need some help on some explanations for this foreach loop -


i have 3 arrays , looking common value each of these arrays.

note: original exercise not use built-in php functions.

i have solution need trying understand specific parts of solution.

can step me through this?

i have questions on following:

1) on first nested foreach foreach ($ar $value), $ar has 3 arrays , taking values of each , putting $value, how work? normal behavior nested foreach arrays?

2) (!isset($values[$value])) { if values array passing in array values variable $value not set equals 0 / why need equal zero?

3) $a = $values[$value]++; why increment here purpose?

4) foreach ($values $value => $count) { can explain last foreach doing? stepping through it?

code

$array1 = [1, 5, 10, 20, 40, 80]; $array2 = [6, 7, 20, 80, 100]; $array3 = [3, 4, 15, 20, 30, 70, 80, 120];  $values = [];  foreach ([$array1, $array2, $array3] $ar) {     foreach ($ar $value) {         if (!isset($values[$value])) {             $values[$value] = 0;         }         $a = $values[$value]++;     } }  $commonvalues = [];  foreach ($values $value => $count) {     if ($count > 2) {         $commonvalues[] = $value;     } }  print_r($commonvalues); // common values 20, 80 

1) on first nested foreach foreach ($ar $value), $ar has 3 arrays , taking values of each , putting $value, how work? normal behavior nested foreach arrays?

$ar reference current array in array, it's same $array1, $array2, etc1. inner foreach takes array reference , iterates through referenced array, it's reference being current referenced integer value in referenced array.

see foreach documentation in php manual.

2) (!isset($values[$value])) { if values array passing in array values variable $value not set equals 0 / why need equal zero?

isset() checks $values array does have key set, , returns false if not set. ! negation, turns true false , false true. hence, if $value key not set in $values, set value of 0. be...

3) $a = $values[$value]++; why increment here purpose?

... incremented keep track of number of times $value found in [$array1, $array2, $array3] list passed outer foreach.

4) foreach ($values $value => $count) { can explain last foreach doing? stepping through it?

this reading through individual instances of values stored arrays, checking count, , storing value ($value) in $commonvalues array if occurred more twice.


1. technically, $ar copy of related [$array1, ...] array (which in turn copy of actual $array# variable); &$ar mean use reference actual array, not make copy. here demonstration: http://codepad.viper-7.com/hxdsd7 note how $array1 modified other 2 not (since don't have & this: [&$array1, &$array2, &$array3]).


Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -