【发布时间】:2017-01-24 17:32:38
【问题描述】:
我正在尝试使用 Stackoverflow 上其他地方建议的关联数组来完成某些事情,但我从未使用过数组,所以我很挣扎。我已经查过了,但结果却比我更困惑!
这是交易:我想显示一张随机图像作为 Worpdress 网站的背景,并显示拍摄该图像的摄影师的姓名。所以我创建了一个函数,其中包括一个关联数组,将图像与摄影师关联起来,以及一个用于检索照片和摄影师姓名的小脚本。这是我的功能:
function bg_image_info() {
$creditsList = array(
"1" => "Photographer 1",
"2" => "Photographer 2",
"3" => "Photographer 3",
...
...
"74" => "Photographer 74"
);
$root = get_stylesheet_directory_uri();
$dir = $root . "/images/bgs/";
$random = mt_rand(1,74);
$path = $root . "/images/bgs/bg_" . $random . ".jpg";
$credits = $creditsList["" . $random . ""];
return array($path, $credits);
}
它工作得很好,但有一个问题。我需要在两个不同的地方使用 $path 和 $credits 这两个值($path 作为“src”属性,$credits 在“p”标签中),所以经过一些研究后我尝试做的是再写这两个功能:
function bg_image_path() {
list($bgPath, $bgCredits) = bg_image_info($path, $credits);
echo $bgPath;
}
function bg_image_credits() {
list($bgPath, $bgCredits) = bg_image_info($path, $credits);
if($bgCredits) {
echo "Photo " . $bgCredits . "";
}
}
然后在我需要重视的地方打电话给每个人。但看起来这两个函数使用了不同的 $random 值,因为照片和学分不匹配(如果我将 mt_rand() 替换为用于测试目的的固定值,它们就会匹配)。
那么如何回显第一个函数返回的两个值,以便使用相同的 $random 值?
非常感谢任何帮助,谢谢!
【问题讨论】:
标签: php arrays random associative