2016-05-28 1 views
0

Эта таблица состоит из 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>   

$ ключ является ключом и $ Produk [ключ] имя продукта. И их общая стоимость составляет $ прив.

А вот код функции ПОЛУЧИТЬ ранга

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

Какой смысл функции 'get_rank'? Может быть, получить упорядоченную * копию * массива вместо повторного упорядочивания массива? Не использует 'arsort()', а затем нумерует ключи точно так же, как с помощью 'sort()'? –

+0

Пожалуйста, покажите, как инициализируются/генерируются '$ PRODUK' и' $ pref'. –

+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]; 

Вам не нужно никаких циклов Еогеасп доступ только один элемент ,

+0

Я отредактировал свой вопрос выше, надеюсь, что это яснее, чем раньше, спасибо – rafdwna

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>"; 

 Смежные вопросы

  • Нет связанных вопросов^_^