随机化数组中的值以获取特定键

时间:2014-07-24 15:30:57

标签: php arrays random

我试图获取特定密钥的随机数组。

到目前为止,这是我的代码,

$convert = array(
    'a' => 'Amusing','Amazing',
    'b' => 'Beyond',
    'c' => 'Clever','Colorful','Calm',
    'd' => 'Dangerous','Donkey',
    'e' => 'Endangered',
    'f' => 'Fancy',
    'g' => 'Great',
    'h' => 'Helpful','Humorous',
    );

$txt="baca";
$txt=strtolower($txt);
$arr=str_split($txt);
foreach ($arr as $alfa) {
    echo $alfa." = ".$convert[$alfa]."\n";
}

the output would be :
b = Beyond
a = Amusing
c = Clever
a = Amusing

但是我想要

b = Beyond
a = Amusing
c = Clever
a = Amazing 

在这种情况下,特定数组(' a')的唯一值。 我试图使用array_rand但失败了。我很感激任何给出的建议..

1 个答案:

答案 0 :(得分:1)

此:

array(
    'a' => 'Amusing','Amazing',
    ...
)

相当于:

array(
    'a' => 'Amusing',
    0   => 'Amazing',
    ...
)

您没有为“神奇”一词指定密钥,因此会自动获取数字密钥。它实际上不属于'a'键,即使你在同一行上写它。

你想要的是:

array(
    'a' => array('Amusing', 'Amazing'),
    ...
)

然后:

$values = $convert['a'];
echo $values[array_rand($values)];