PHP - replace values in sub array -
i have 2 arrays $pq , $rs. please see them below:
$pq = array ('page-0'=>array ('line-0'=>array('item-0'=>array('name'=>"item-00",'value'=>"123"),                                            'item-1'=>array('name'=>"item-01",'value'=>"456")                                             ),                             'line-1'=>array('item-0'=>array('name'=>"item-10",'value'=>"789"),                                            'item-1'=>array('name'=>"item-11",'value'=>"012")                                             )),  'page-1'=>array ('line-0'=>array('item-0'=>array('name'=>"item-100",'value'=>"345"),                                            'item-1'=>array('name'=>"item-101",'value'=>"678")                                             ),                             'line-1'=>array('item-0'=>array('name'=>"item-110",'value'=>"901"),                                            'item-1'=>array('name'=>"item-111",'value'=>"234")                                             ),                             'line-2'=>array('item-0'=>array('name'=>"item-210",'value'=>"567"),                                            'item-1'=>array('name'=>"item-211",'value'=>"890")                                             ))  );   $rs = array ('1'=>array('name'=>'item-00', 'value'=>"abc"), '2'=>array('name'=>'item-01', 'value'=>"def"), '3'=>array('name'=>'item-10', 'value'=>"ghi"), '4'=>array('name'=>'item-11', 'value'=>"jkl"), '5'=>array('name'=>'item-100', 'value'=>"mno"), '6'=>array('name'=>'item-101', 'value'=>"pqr"), '7'=>array('name'=>'item-110', 'value'=>"stu"), '8'=>array('name'=>'item-111', 'value'=>"vwx") );   what trying replace values in $pq items values $rs. example item-01 in $pa replaced abc $rs. tried this:
foreach($rs &$rs1) { echo "first count :".$firstcount."<br>"; foreach($pq $pages) {     foreach($pages $lines) {         foreach($lines &$item) {             if ($item['name'] == $rs1['name']) { echo "matching </p>";                     $item['value']=$rs1['value'];                 echo '<pre>';                 print_r($item);                 echo '</pre>';                 echo "<hr>";                 }               }        }      } }   when print values of $item $pq, prints values $rs, when print whole array $pq, values seem unchanged. can please me find out missing ?
you're correctly looping through items in each line reference, you're not doing lines or pages themselves. you're updating value of item in copy of line, instead of line itself. should be:
foreach($rs $rs1) {     echo "first count :".$firstcount."<br>";     foreach($pq &$pages) {         foreach($pages &$lines) {             foreach($lines &$item) {                 if ($item['name'] == $rs1['name']) { echo "matching </p>";                         $item['value']=$rs1['value'];                     echo '<pre>';                     print_r($item);                     echo '</pre>';                     echo "<hr>";                 }               }        }      } }   note & in front of &$lines , &$pages.  note $rs1 doesn't need passed reference, since aren't changing in array.
Comments
Post a Comment