1

如果我有一个关联数组来存储来自 csv 文件的值,如下所示:

$file_users = fopen("Users.csv", "r");
while (($record = fgetcsv($file_users, 1024, ',""')) !== FALSE){
        $users[]= array($record[0] => $record[2].$record[3]);
}

record[0]、record[2] 和 record[3] 是列中的值,逐行。

然后这是我从数组中搜索值并打印结果的方法:

for($i=0;$i<count($users);$i++){
foreach($users[$i] as $username_matricula => $username_fullname){
    if($username_matricula === $some_string){
        echo "Found: ".$some_string." and the result is: ".$username_fullname;
        }#end if
    }#end foreach
}#end for

它向我抛出了以下警告:

Warning:  Invalid argument supplied for foreach().

我究竟做错了什么?还有另一种方法可以在 assoc 数组中查找字符串吗?

4

1 回答 1

1

也许这个?

foreach((array)$users[$i] as $username_matricula => $username_fullname){

通过在实际数组前面添加 (array) 可以使其为空安全。(没有警告)

于 2012-06-06T17:50:28.930 回答