如何将变量中的值与关联数组中的值进行比较?

时间:2018-03-10 17:51:18

标签: php

如果我有阵列:

$grades = array("A+"=>"5", "A"=>"4", "B"=>"3", "C"=>"2", "D"=>"1", "F"=>"0");

我有一个变量:

$score = 5;

有没有办法比较$score变量和$grades数组中的值,并将结果存储在变量$grade中?

因此,在上面的示例中,$grade中的值应为A +?

4 个答案:

答案 0 :(得分:4)

您可以使用import numpy as np technicians = np.random.randint(low=0,high=2,size=(7,100)) customers = np.random.randint(low=0,high=2,size=(7,1000)) result = solution(technicians, customers) result.shape # (7,100,1000) 在阵列中交换所有键及其关联值。 array_flip数组,您可以多次重复使用该数组。

array_flip

这将导致

$grades = array("A+"=>"5", "A"=>"4", "B"=>"3", "C"=>"2", "D"=>"1", "F"=>"0");
$grades = array_flip($grades); 
$score = 5;

echo $grades[$score] . "<br />";
echo $grades[4] . "<br />";
echo $grades[1] . "<br />";

文档:http://php.net/manual/en/function.array-flip.php

答案 1 :(得分:3)

您可以使用array_search()获取值的第一个相应键:

$grades = array("A+"=>"5", "A"=>"4", "B"=>"3", "C"=>"2", "D"=>"1", "F"=>"0");
$score = 5;
$grade = array_search($score, $grades);
echo $grade; // A+

答案 2 :(得分:3)

对于关联数组,您必须使用foreach函数进行迭代,如下所示:

foreach($grades as $key => $value){
    if($score === intval($value)){
        $grade = $key;
        break;
    }
}

对于关联数组,请使用:$ key =&gt; $值。这样在你的例子中,在第一次迭代中,$ key将是&#34; A +&#34;和$ value将是&#34; 5&#34;。

有关更多信息,您可以查看here; p

答案 3 :(得分:2)

$grades = array("A+"=>"5", "A"=>"4", "B"=>"3", "C"=>"2", "D"=>"1", "F"=>"0");
$score = "5";
$grade = "";

foreach($grades as $key=> $val){
    if($score == $val)
        $grade = $key;
}

echo $grade;