我的一个函数返回数据时出现问题,这是我的代码:
function getLinks($host, $hash, $count) {
require_once('api-sape.php');
$sape = new SapeApi();
$userId = $sape->login(SAPE_USER, SAPE_PASS);
// query the database for the proper strings to return
$sql1 = DB::getInstance()->select("SELECT * FROM `purchased` WHERE `purchased_site_hash`='".$hash."' LIMIT ".$count."");
$results = "";
foreach ($sql1 as $row) {
$sq2 = DB::getInstance()->selectValues("SELECT * FROM `projects` WHERE `project_sape_id`='".$row['purchased_project_id']."'");
//echo "URL: " . $sq2['project_url'];
//echo "<br />";
//echo "Text: " . $row['purchased_text'];
$url = $sq2['project_url'];
$txt = $row['purchased_text'];
// do some string manipulation
$arr = array("#a#" => '<a href="'.$url.'">', "#/a#" => "</a>");
$result = strtr($txt, $arr);
//echo $result;
$results = $result;
echo $result;
}
print_r($results);
return [$results];
return [
'some text <a href="link">text</a> some text',
'some text <a href="link">text</a> some text'
];
}
我以这种格式返回值:
return [
'some text <a href="link">text</a> some text',
'some text <a href="link">text</a> some text'
];
根据字符串的数量,&#34;返回&#34;应该从上面返回字符串的数量,在这种情况下有2个字符串,但它只返回1,如果我回显: echo $ result; 在foreach它很好,它&& #39; s得到值返回[]我遇到问题,任何帮助都将不胜感激!
答案 0 :(得分:1)
小心!您将返回包含$results
数组的数组,您应该返回$results
。
[$val]
是array($val)
功能的快捷方式。所以在你的情况下,你将返回一个包含数组的数组。因此,如果您确实想要返回一个数组,则必须访问返回数组的第一个值([0]
)。