我有两个与我合作的功能。第一个进行数据库调用并获取用户的两个属性。该用户的UserID和Markup。
/*
Search Markup for a specific QID
*/
function searchMarkup($identifier){
global $markupArray;
if(isset($markupArray)){
foreach($markupArray as $m){
if((string)$key->QID == (string)$identifier){
return $m->markup;
}
}
}
return '';
}
/*
Fetch the markup data for this dashboard
*/
function fetchMarkup(){
global $dashboardID;
global $markupArray;
$objDB = new DB;
$objMarkup = $objDB
-> setStoredProc('FetchMarkup')
-> setParam('dashboardID', $dashboardID)
-> execStoredProc()
-> parseXML();
// Create an array of the markup
if(isset($objMarkup->data)){
$i = 0;
foreach($objMarkup->data as $m){
$markup[$i] = array();
$markup[$i]['QID'] = (string)$m->QID;
$markup[$i]['markup'] = (string)$m->Markup;
$i++;
}
$markupArray = $markup;
}
}
当我运行fetchMarkup()
然后打印出$markupArray
时,我会得到以下结果:
Array
(
[0] => Array
(
[QID] => Q0002
[markup] => success
)
[1] => Array
(
[QID] => Q101
[markup] => success
)
[2] => Array
(
[QID] => Q200
[markup] => info
)
)
我的下一步是通过提供QID
并将markup
值返回给我来搜索该数组。
我正试图像searchMarkup('Q0002')
那样让它告诉我markup
的结果,但我没有得到任何回应。
如何从markup
创建的数组中检索fetchMarkup()
的值?
答案 0 :(得分:1)
您使用$key
的原因?来自哪里
foreach($markupArray as $m)
您可以看到别名$m
而不是$key
$markupArray
是关联数组而不是对象数组
所以而不是
if((string)$key->QID == (string)$identifier){
return $m->markup;
}
因为它是一个关联数组,所以将它改为
if((string)$key['QID'] == (string)$identifier){
return $m['markup'];
}
所以你的searchMarkup会是这样的
function searchMarkup($identifier){
global $markupArray;
if(isset($markupArray)){
foreach($markupArray as $m){
if((string)$m['QID'] == (string)$identifier){
return $m['markup'];
}
}
}
return '';
}