如何访问关联数组中的行?

时间:2016-05-28 02:45:52

标签: php arrays associative

此表由3列组成:产品的键名,总价值和排名。这些等级根据总价值进行排序。如何只回显第一行中总产值最大的产品名称?如何访问包含最大值的第一行的键?

这是等级表的代码

<table class="table table-bordered table-striped table-hover">
    <tr>
        <th></th>
        <th>Total</th>
        <th>Rank</th>
    </tr>
    <?php     

    $rank = get_rank($pref);

    foreach($rank as $key => $value){
        echo"<tr>";
        echo"<th>$key - $PRODUK[$key]</th>";
        echo "<td class='text-primary'>".round($pref[$key], 3)."</td>";
        echo "<td class='text-primary'>".$rank[$key]."</td>";
        echo "</tr>";
        $no++;    
    }                            
    ?>
    </table>        

$ key是密钥,$ PRODUK [key]是产品的名称。它们的总价值是$ pref。

以下是get rank

功能的代码
function get_rank($array){
    $pref= $array;
    arsort($pref);
    $no=1;
    $new = array();
    foreach($pref as $key => $value){
        $new[$key] = $no++;
    }
    return $new;
}

2 个答案:

答案 0 :(得分:0)

您的代码段中没有声明$PRODUK。您正在通过$rank迭代foreach($rank as $key => $value)。因此密钥为$key$rank[$key]的副本位于$value。请尝试输出$value或澄清您的问题,并提供更多代码,以便了解$PRODUK及其与$rank的关系。

从你的第二个片段开始,返回的数组的值是等级,即thay可能代表原始数组的键。所以你可以试着输出例如round($pref[$value])$PRODUK[$value]。您可能需要从排名0开始,因为数组通常基于零。但是,您不提供初始化代码。

再次:你的问题没有提供足够的信息。

为了您添加的问题

  

如何仅回显第一行中产品的名称

$key = 1; // respective to your code $no=1;
$value = $rank[$key];

您不需要任何foreach循环来访问单个元素。

答案 1 :(得分:0)

它可能对你有帮助

    $rank = get_rank($pref);
    echo"<tr>";
    echo"<th>".key($rank)."</th>";
    echo "<td class='text-primary'>".round($pref[key($rank)], 3)."</td>";
    echo "<td class='text-primary'>".reset($rank)."</td>";
    echo "</tr>";