数组_unshift命令在yii2中无法正常工作

数组_unshift命令在yii2中无法正常工作,yii2,Yii2,我这里有个问题。我有一个包含用户的下拉列表,当我单击任何用户时,它会显示分配给它的客户端 现在,我在下拉列表顶部添加了“未分配的客户端”选择,以显示哪些客户端是未分配的。我用array_unshift命令添加了它,但是现在在一些现有用户中,并不是所有的用户都没有显示任何客户端,而是在数据库中分配了这些客户端 当我移除array_unshift时,客户机会正确显示,但是没有额外的选择 我认为数组_unshift有问题,但不确定 这是我的选择功能: public static function ge

我这里有个问题。我有一个包含用户的下拉列表,当我单击任何用户时,它会显示分配给它的客户端

现在,我在下拉列表顶部添加了“未分配的客户端”选择,以显示哪些客户端是未分配的。我用array_unshift命令添加了它,但是现在在一些现有用户中,并不是所有的用户都没有显示任何客户端,而是在数据库中分配了这些客户端

当我移除array_unshift时,客户机会正确显示,但是没有额外的选择

我认为数组_unshift有问题,但不确定

这是我的选择功能:

public static function getUsers()
{
    $query = self::find()
        ->select(['id', "CONCAT(name, ' ', surname, ' (', email, ')') as name"]);

    $users = ArrayHelper::map($query->asArray()->all(), 'id', 'name');

    array_unshift($users, 'Test'));

    return $users;
}
发件人:

所有数字数组键都将被修改为从零开始计数,而文字键不会被更改

使用+:

发件人:

所有数字数组键都将被修改为从零开始计数,而文字键不会被更改

使用+:


它起作用了。非常感谢。你能解释一下你写的关于所有数字键的句子吗。。。?我搞不懂。我试图将我的数组反移位和你的返回值进行var_转储,但结果给出了完全相同的数组。那么有什么不同呢?它不能是同一个数组。ArrayHelper::map在使用数组时会生成类似['12'=>'aaa'、'34'=>'bbb'、'36'=>'ccc']的内容,它将被重新映射到[0=>'unshifted element',1=>'aaa',2=>'bbb',3=>'ccc']。它可以工作。非常感谢。你能解释一下你写的关于所有数字键的句子吗。。。?我搞不懂。我试图将我的数组反移位和你的返回值进行var_转储,但结果给出了完全相同的数组。那么有什么不同呢?它不能是同一个数组。ArrayHelper::map在使用数组时会生成类似['12'=>'aaa','34'=>'bbb','36'=>'ccc']的内容,它将被重新映射到[0=>'unshifted element',1=>'aaa',2=>'bbb',3=>'ccc']。
public static function getUnmappedUsersList()
{
    $query = self::find()
        ->select(['id', "CONCAT(name, ' ', surname, ' (', email, ')') as name"]);

    return [Yii::t('app', 'ADMIN_PANEL_MIGRATE_UNASSIGNED_CLIENTS')] 
        + ArrayHelper::map($query->asArray()->all(), 'id', 'name');
}