PHP 将数组重写为字符串,

PHP rewrite array to string,

在这种情况下,例如,
我有来自 person_code => 1,2,3
数组的字符串,然后我想将该字符串更改为另一个字符串person_nama 数组 => name1, name2, name3
我试过我的代码:

public function Person_name($person_code)
    {
        $code= explode(',', $person_code);
        $name=array();
        for($i=0; $i<count($code); $i++){
            $sql= Yii::app()->db->createCommand('select nm_person from tbl_person where kd_person="'.$code[$i].'";');
            $name=$sql->queryRow();
        }
        $namearray= implode(',',$name);
        return $namaarray;
    }


但结果只是 return 数组中的最后一个人名,
谁能帮帮我??谢谢

我只是通过使用创可贴解决方案来回答这个问题,通常只是将结果推入数组。您当前的代码只是覆盖 $name.

$name[] = $sql->queryRow();

但是

不要直接将变量插入查询字符串。停下来,您已经在使用一个带有有用查询构建器的良好框架。

与其对每个 ID 执行每个查询,不如将 WHERE IN 子句风格与构建器一起使用。

更好的未经测试的基本想法:

public function Person_name($person_code)
{
    $persons = array();
    $person_code = explode(',', $person_code);

    if(!empty($person_code)) {
        $result = Yii::app()->db->createCommand()
        ->setFetchMode(PDO::FETCH_COLUMN, 0)
        ->select('nm_person')
        ->from('tbl_person')
        ->where(array('IN', 'kd_person', $person_code)
        ->queryAll();

        $persons = implode(', ', $result);
    }

    return $persons;
}

基于阅读 manual