Page

[算法]foreach循环替代三表联合查询

674Anson17-09-26



<?php

$a = [['p_id'=>83,'p_allname'=>'宝马']];

$b = [['id'=>40,'c_name'=>'36月供'],['id'=>41,'c_name'=>'24月供']];

$c = [['c_id'=>40,'p_id'=>83,'c_value'=>3000],['c_id'=>41,'p_id'=>83,'c_value'=>2000]];

foreach($a as &$av){
    foreach($c as $cv){
        if($av['p_id']==$cv['p_id']){
            foreach($b as $bv){
                if($bv['id']==$cv['c_id']){
                    $av['c_'.$bv['id']]['c_name'] = $bv['c_name'];
                    $av['c_'.$bv['id']]['c_value'] = $cv['c_value'];
                }
            }
        }
    }
}

var_dump($a);
array(1) {
  [0]=>
  &array(4) {
    ["p_id"]=>
    int(83)
    ["p_allname"]=>
    string(6) "宝马"
    ["c_40"]=>
    array(2) {
      ["c_name"]=>
      string(8) "36月供"
      ["c_value"]=>
      int(3000)
    }
    ["c_41"]=>
    array(2) {
      ["c_name"]=>
      string(8) "24月供"
      ["c_value"]=>
      int(2000)
    }
  }
}


来自ansion博客 

http://www.tp0.top

2017-09-26 22:04:38