📜  db($twoRandomPhotosOfSomePeoples); - PHP (1)

📅  最后修改于: 2023-12-03 15:14:37.714000             🧑  作者: Mango

PHP 函数:db($twoRandomPhotosOfSomePeoples)

该函数用于从一些人的照片中随机获取两张照片,并返回这两张照片的数组。

函数包含一个参数 $twoRandomPhotosOfSomePeoples,该参数必须是一个数组,表示所有人的照片集合。该数组必须包含至少两个元素,每个元素应该是一个表示某个人的照片的数组。

例如,可以如下组织 $twoRandomPhotosOfSomePeoples 的元素:

$twoRandomPhotosOfSomePeoples = [
    [
        'name' => 'John',
        'photo' => 'img/john.jpg'
    ],
    [
        'name' => 'Jane',
        'photo' => 'img/jane.jpg'
    ],
    [
        'name' => 'Tom',
        'photo' => 'img/tom.jpg'
    ]
]

函数会随机选择两张不同的照片,用一个表示这两张照片的数组返回。结果的格式如下:

['photo1' => 'img/jane.jpg', 'photo2' => 'img/tom.jpg']

函数的实现源码如下:

function db($twoRandomPhotosOfSomePeoples) {
    $total = count($twoRandomPhotosOfSomePeoples);

    if ($total < 2) {
        return ['error' => 'The total number of photos is less than 2'];
    }

    $photoIndex1 = rand(0, $total - 1);
    $photoIndex2 = rand(0, $total - 1);

    while ($photoIndex2 == $photoIndex1) {
        $photoIndex2 = rand(0, $total - 1);
    }

    $photo1 = $twoRandomPhotosOfSomePeoples[$photoIndex1]['photo'];
    $photo2 = $twoRandomPhotosOfSomePeoples[$photoIndex2]['photo'];

    return ["photo1" => $photo1, "photo2" => $photo2];
}

用法示例:

$twoRandomPhotos = db($twoRandomPhotosOfSomePeoples);

echo "Which picture do you prefer?\n";
echo "1. <img src=\"" . $twoRandomPhotos['photo1'] . "\" />\n";
echo "2. <img src=\"" . $twoRandomPhotos['photo2'] . "\" />\n";

结果将是一个包含两张随机照片的数组,并以 markdown 格式返回上述代码片段。