【问题标题】:PHP Associative array. Get key value pair using foreachPHP 关联数组。使用 foreach 获取键值对
【发布时间】:2016-10-31 03:03:31
【问题描述】:

我正在尝试定义一个函数,给定一个关联数组,该函数将回显键值对,给定该函数的参数。

到目前为止,我的代码如下所示。但是,该代码的结果将是键值对的完整列表(表)。我想要得到的只是一对(一旦调用函数)。

有人可以帮我吗?

谢谢!

enter code here

<!DOCTYPE html>
<html>
<head>

<body>

<h1>List of States</h1>

<?php

$states = array ("AL"=>"Alabama","AK"=>"Alaska","AZ"=>"Arizona","AR"=>"Arkansas","CA"=>"California","CO"=>"Colorado","CT"=>"Connecticut",
"DE"=>"Delaware","FL"=>"Florida","GA"=>"Georgia","HI"=>"Hawaii","ID"=>"Idaho","IL"=>"Illinois","IN"=>"Indiana","IA"=>"Iowa","KS"=>"Kansas",
"KY"=>"Kentucky");

function printState($Abbr) {

    global $states;

        echo "<table border=1>";

    foreach($states as $Abbr => $value) {   

        echo "<tr>";
        echo "<td>";
        echo $Abbr;
        echo "</td>";
        echo "<td>";
        echo $value;
        echo "</td>";
        echo "</tr>";

    }

        echo "</table>";

}

printState("CA");


?>

</body>
</html>

【问题讨论】:

  • echo $states[$Abbr]; 不够吗?
  • 所以您只想在每次调用函数时打印 1 个键/值对,或者您想获取传递给函数的键的特定值?
  • 嘿。一旦调用该函数,我只想打印一对。意思是,如果我通过键“CA”,我想得到一个只有一行的表,其中包括键(CA)和州名(加利福尼亚州)。顺便说一句,我尝试回显 $states[$Abbr];,但我得到了完整的州列表。
  • @EmilioZaidman 根据您的代码,这不应该发生。如果您删除除数组之外的所有代码,并执行echo $states["CA"]; 之类的操作,您应该会得到加利福尼亚(并且只有加利福尼亚)。
  • 没错。我这样做并工作了。但我只得到价值,而不是关键。 Jamie 给我的代码(我不知道如何提及他)工作得很好。谢谢!

标签: php foreach associative-array


【解决方案1】:

如果你必须有一个功能:

function getState($code) {
    global $states;
    if (array_key_exists($code, $states)) {
        return $states[$code];
    }
    return false;
}

echo getState('GA');

但正如Dave Chen 所建议的那样,$states[$abbr]; 是你应该做的。

【讨论】:

  • in_array 检查该值是否作为值存在,$code 将是数组的键。我觉得应该是array_key_exists
【解决方案2】:

你好你也可以用这个

function printState($Abbr) {
    global $states;
if (array_key_exists($Abbr,$states)){   
    return "<table border=1><tr><td>$Abbr</td><td>$states[$Abbr]</td></tr></table>";
    }
}
echo printState("AK");
?>

【讨论】:

    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多