为什么数组索引未定义?

时间:2014-08-24 19:00:15

标签: php arrays yii

我正在使用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索引存在,那么这里有什么问题?

2 个答案:

答案 0 :(得分:3)

使用foreach()时,您必须首先指定要迭代的数组(在本例中为$u),并在"之后指定另一个变量作为"指示应该在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;
}

答案 1 :(得分:0)

试试这个

$criteria = new CDbCriteria;
$criteria->select = 'username, password'; 
$u = Users::model()->findAll($criteria);

foreach($u as $val){
    $users["$val->username"] = "$val->password";
}
print_r($users);