php Loss和foreach中的变量范围
我有一些密码。当我尝试返回$language[0]=>全部正常时。但是当我试图返回$language[1]=>时,这个元素找不到。请告诉我如何更改此代码php Loss和foreach中的变量范围,php,arrays,Php,Arrays,我有一些密码。当我尝试返回$language[0]=>全部正常时。但是当我试图返回$language[1]=>时,这个元素找不到。请告诉我如何更改此代码 function language($id) { $language = array(); $criteria = array("id" => $id); $fields = array('language'); $cursor = $col
function language($id)
{
$language = array();
$criteria = array("id" => $id);
$fields = array('language');
$cursor = $collection->find($criteria, $fields);
foreach ($cursor as $row) {
$language[0] = $row['language'];
}
$criteria = array("id" => $language[0]);
$fields = array('lang');
$cursor2 = $collection->find($criteria, $fields);
foreach ($cursor2 as $row) {
$language[1] = $row['lang'];
}
return $language[1];
}
删除
[0]
$language[0] = $row['language']; // overwritting subscript 0
所以它变成了
$language[] = $row['language']; // adding to index
另外,$collection
也没有定义。试着用foreach($cursor as$row){$language[]=$row['language']代替。您正在通过atm一次又一次地覆盖该值。在我看来,问题(其中一个问题…)是$collection
,因为当前范围中没有定义该变量。