为什么数组索引未定义


why the array index is undefined?

我正在使用Yii,我想打印一个数组的索引,但我得到一个错误,索引是未定义的,这是我的代码:

 $criteria = new CDbCriteria;
 $criteria->select = 'username, password'; // select fields which you want in output
 $u = Users::model()->findAll($criteria);
 foreach($u as $u)
        $users["$u->username"] = "$u->password";
echo $users['a'];

我打印了数组,并确保a索引存在,那么这里的问题是什么?

使用foreach()时,必须首先指定要迭代的数组(本例中为$u),并在"as"之后指定一个不同的变量,以指示该变量应在foreach()循环范围内。您还必须将$users声明为一个数组,以便可以向其中添加项。当它是索引值或数组值时,不需要双引号。

// create $users array to store values
$users = array();
// iterate over the $u array referring to elements as $user
foreach ( $u as $user ){
    // place properties of $user into the $users array
    $users[$user->username] = $user->password;
}

试试这个

$criteria = new CDbCriteria;
$criteria->select = 'username, password'; 
$u = Users::model()->findAll($criteria);
foreach($u as $val){
    $users["$val->username"] = "$val->password";
}
print_r($users);