Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何回显函数返回的关联数组的值_Php_Arrays_Random_Associative - Fatal编程技术网

Php 如何回显函数返回的关联数组的值

Php 如何回显函数返回的关联数组的值,php,arrays,random,associative,Php,Arrays,Random,Associative,我正在尝试使用Stackoverflow上其他地方建议的关联数组来完成一些事情,但我从未使用过数组,所以我很挣扎。我已经查过了,但却发现自己比以前更糊涂了 这里的交易:我想显示一个随机图像作为背景的WorpAddress网站,并显示摄影师的名字谁采取了图像以及。因此,我创建了一个函数,其中包括一个关联数组,将图像与摄影师关联,以及一个检索照片和摄影师姓名的小脚本。这是我的职责: function bg_image_info() { $creditsList = array( "1" =

我正在尝试使用Stackoverflow上其他地方建议的关联数组来完成一些事情,但我从未使用过数组,所以我很挣扎。我已经查过了,但却发现自己比以前更糊涂了

这里的交易:我想显示一个随机图像作为背景的WorpAddress网站,并显示摄影师的名字谁采取了图像以及。因此,我创建了一个函数,其中包括一个关联数组,将图像与摄影师关联,以及一个检索照片和摄影师姓名的小脚本。这是我的职责:

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值呢


我真的非常感谢任何帮助,谢谢

关联数组对值使用命名键,我们可以用类似于索引数组的方式创建它们。foreach用于在关联数组中循环

<?php
$colors = array("0"=>"Red","1"=>"Green","2"=>"Blue");
echo "0th element of array is " . $colors["0"];
echo "<br>";
//looping
foreach ($colors as $key=>$value){
    echo "Key=".$key." value=".$value;
    echo "<br>";
}
?> 

关联数组对值使用命名键,我们可以用类似于索引数组的方式创建它们。foreach用于在关联数组中循环

<?php
$colors = array("0"=>"Red","1"=>"Green","2"=>"Blue");
echo "0th element of array is " . $colors["0"];
echo "<br>";
//looping
foreach ($colors as $key=>$value){
    echo "Key=".$key." value=".$value;
    echo "<br>";
}
?> 

当然,这是因为您每次调用函数两次 您需要路径或积分的时间,从而生成两个不同的 随机值

我认为没有必要使用最后两个函数(
bg\u image\u path()
bg\u image\u credits()
)。一个简单的修复方法是在 在你的页面中的一些点(在第一次使用之前),只保留这些变量 在需要时使用

list($bgPath, $bgCredits) = bg_image_info($path, $credits); 
# [...]
<img src="<?= $bgPath ?>" />
# [...]
<p>Credits: <?= $bgCredits ?></p>
list($bgPath,$bgpcredits)=bg\u image\u info($path,$credits);
# [...]
" />
# [...]
学分:


回答你的评论,我完全理解你想保留它 保持整洁,不要重复你自己,但实际上,在这种情况下,你只是 使用函数。重复调用函数的行没有错 在两个或两个以上的地方。这就是它的使用方式:)

不管怎么说,如果你想通过不同的方式回应你的价值观 函数,必须在它们之间共享随机数,以便 同样的事情。我想到的第一个方法是你生成 自己编号,他们使用两个函数通过 把这个号码传给他们。但是既然你想让它保持功能 电话,我想你会更喜欢这样做类似于你目前的设置 3个函数。可以做的是完全重写以生成 主函数中的值,并将数据保存在其他函数中:

function
bg_image_info()
{
    # note the global to avoid it being local only
    global $bg_random = mt_rand(1,74);
}

function
bg_image_path()
{
    echo get_stylesheet_directory_uri() .
            "/images/bgs/bg_$bg_random.jpg";
}

function
bg_image_credits()
{
    $creditsList = [
        'none',
        "Photographer 1",
        "Photographer 2",
        "Photographer 3",
        # ...
        "Photographer 74"
    ];

    echo $creditsList[$bg_random];
}

<?php bg_image_info(); ?>
<img src="<? bg_image_path() ?>" />
<p>Credits: <? bg_image_credits() ?></p>
函数
bg_图像_信息()
{
#请注意全局设置,以避免仅为局部设置
全球$bg_随机=百万兰特(1,74);
}
功能
bg_图像_路径()
{
echo获取\样式表\目录\ uri()。
“/images/bgs/bg_$bg_random.jpg”;
}
功能
bg_图像_学分()
{
$creditsList=[
“没有”,
“摄影师1”,
“摄影师2”,
“摄影师3”,
# ...
“摄影师74”
];
echo$creditsList[$bg_random];
}
" />
学分:

或者使用面向对象的方法

class RandomImage
{
    public $path;
    public $credits;

    public function
    __construct()
    {
        $r = mt_rand(1,74);

        $creditsList = [
            'none',
            "Photographer 1",
            "Photographer 2",
            "Photographer 3",
            # ...
            "Photographer 74"
        ];

        $path = get_stylesheet_directory_uri() .
                    "/images/bgs/bg_$r.jpg";

        $credits = $creditsList[$r];
    }
}

<?php $img = new RandomImage; ?>
<img src="<?= $img->path ?>" />
<p>Credits: <?= $img->credits ?></p>
类随机图像
{
公共道路;;
公共美元信贷;
公共职能
__构造()
{
$r=百万兰特(1,74);
$creditsList=[
“没有”,
“摄影师1”,
“摄影师2”,
“摄影师3”,
# ...
“摄影师74”
];
$path=get\u样式表\u目录\u uri()。
“/images/bgs/bg_$r.jpg”;
$credits=$creditsList[$r];
}
}
路径?>“/>
学分:


当然会发生这种情况,因为您每次调用函数两次
您需要路径或积分的时间,从而生成两个不同的
随机值

我认为没有必要使用最后两个函数(
bg\u image\u path()
bg\u image\u credits()
)。一个简单的修复方法是在 在你的页面中的一些点(在第一次使用之前),只保留这些变量 在需要时使用

list($bgPath, $bgCredits) = bg_image_info($path, $credits); 
# [...]
<img src="<?= $bgPath ?>" />
# [...]
<p>Credits: <?= $bgCredits ?></p>
list($bgPath,$bgpcredits)=bg\u image\u info($path,$credits);
# [...]
" />
# [...]
学分:


回答你的评论,我完全理解你想保留它 保持整洁,不要重复你自己,但实际上,在这种情况下,你只是 使用函数。重复调用函数的行没有错 在两个或多个地方。这就是它的使用方式:)

不管怎么说,如果你想通过不同的方式回应你的价值观 函数,必须在它们之间共享随机数,以便 同样的事情。我想到的第一个方法是你生成 自己编号,他们使用两个函数通过 把这个号码传给他们。但既然你想保持它的功能 电话,我想你会更喜欢这样做类似于你目前的设置 3个功能。可以做的是完全重写以生成 主函数中的值,并将数据保存在其他函数中:

function
bg_image_info()
{
    # note the global to avoid it being local only
    global $bg_random = mt_rand(1,74);
}

function
bg_image_path()
{
    echo get_stylesheet_directory_uri() .
            "/images/bgs/bg_$bg_random.jpg";
}

function
bg_image_credits()
{
    $creditsList = [
        'none',
        "Photographer 1",
        "Photographer 2",
        "Photographer 3",
        # ...
        "Photographer 74"
    ];

    echo $creditsList[$bg_random];
}

<?php bg_image_info(); ?>
<img src="<? bg_image_path() ?>" />
<p>Credits: <? bg_image_credits() ?></p>
函数
bg_图像_信息()
{
#请注意全局设置,以避免仅为局部设置
全球$bg_随机=百万兰特(1,74);
}
功能
bg_图像_路径()
{
echo获取\样式表\目录\ uri()。
“/images/bgs/bg_$bg_random.jpg”;
}
功能
bg_图像_学分()
{
$creditsList=[
“没有”,
“摄影师1”,
“摄影师2”,
“摄影师3”,
# ...