Php Yii2关联数组

Php Yii2关联数组,php,arrays,yii2-advanced-app,Php,Arrays,Yii2 Advanced App,我有一个查询,从中我得到一个数组 $mData = \Yii::$app->db->createCommand("SELECT s.slab_start, s.slab_end, s.rate, r.cust_id FROM mdc_tariff_slabs s INNER JOIN mdc_meter_cust_rel r ON s.t_id = r.tariff_id WHERE r.cust_id = $consumer_no")->quer

我有一个查询,从中我得到一个数组

$mData = \Yii::$app->db->createCommand("SELECT s.slab_start, s.slab_end, s.rate, r.cust_id 
 FROM mdc_tariff_slabs s 
 INNER JOIN mdc_meter_cust_rel r ON s.t_id = r.tariff_id
 WHERE r.cust_id = $consumer_no")->queryAll();
通过
var\u dump($mData)

array(3){[0]=>array(3){[“slab\u start”]=>string(1)“1”[“slab\u end”]=>string(3)“100”[“rate”]=>string(2)”rate”=>string(2)”10”}[1]=>array(3){[“slab\u start”]=>string(3)“101”[“slab\u end”]=>string(3)“150”[“rate”=>string(2)”12”}[2]=>

实际上,我希望上面的数组像下面这样

[100 => 10, 150 => 12, PHP_INT_MAX => 14]; 
上面的
100
是第一个
slab\u端
10
是该值的比率
150
是第二个
slab\u端
以及它的
rate
。最后一个slab\u end将始终为空/NULL,因此在这种情况下,我将使用
PHP\u INT\u MAX
。将有
N
板端数量和费率

更新1个MDC表格模型

class MdcTariffSlabs extends \yii\db\ActiveRecord
{
 /**
 * {@inheritdoc}
 */
public static function tableName()
{
    return 'mdc_tariff_slabs';
}

/**
 * {@inheritdoc}
 */
public function rules()
{
    return [
        [['slab_name', 'slab_start', 'rate'], 'required'],
        [['slab_start', 'slab_end', 't_id'], 'integer'],
        [['slab_name', 'rate'], 'string', 'max' => 50],
        [['t_id'], 'exist', 'skipOnError' => true, 'targetClass' => MdcTariff::className(), 'targetAttribute' => ['t_id' => 'id']],
    ];
}

 /**
 * {@inheritdoc}
 */
public function attributeLabels()
{
    return [
        'id' => 'Primary Key',
        'slab_name' => 'Slab Name',
        'slab_start' => 'Start',
        'slab_end' => 'End',
        'rate' => 'Rate',
        't_id' => 'Tariff ID',
    ];
}

/**
 * Gets query for [[T]].
 *
 * @return \yii\db\ActiveQuery
 */
public function getT()
{
    return $this->hasOne(MdcTariff::className(), ['id' => 't_id']);
}
}

您可以这样做:

$data = MdcTariffSlabs::find()
   ->joinWith(['t'])
   ->where('T_TABLE_NAME.cust_id' => $consumer_no)
   ->all();
//然后映射数据

$array = ArrayHelper::map($data, 'slab_end', 'rate');
文件:

//输出应该是这样的

[100 => 10, 150 => 12, ...]; 

您可以使用
ActiveRecord
获取值,然后使用
ArrayHelper::map()
创建必要的数组。@SergheileOnneco您能给我举个例子吗?您有
mdc\u tariff\u Slab
表格模型吗?你能发布它吗?@SergheiLeonenco我已经发布了请检查我收到了这个
array(3){[100]=>string(2)“10”[150]=>string(2)“12”[“”]=>string(2)“14”}
最后一个空了,我遇到了一些问题。这就是为什么我需要在映射时在其中添加一些标记。