как использовать циклы и массив с переполнением стека

Я новичок в программировании PHP, у меня есть выходные данные запроса из базы данных, как это

name    activity  payment
english  activ A   20
english  activ B   25
english  activ c   30
biology  activ d   50
biology  activ e   60

но я хочу показать вывод, как это:

name    activity  payment
english  activ A   20
activ B   25
activ c   30
biology  activ d   50
activ e   60

Как логическая программа использует PHP, чтобы показать только одно имя с тем же именем?

Вы можете решить эту проблему?

0

Решение

база данных покажет имена так же, как

name    activity  payment
english  activ A   20
english  activ B   25
english  activ c   30
biology  activ d   50
biology  activ e   60

но если вы хотите показать записи как

name    activity  payment
english  activ A   20
activ B   25
activ c   30
biology  activ d   50
activ e   60

Вы можете сделать это в PHP

например

$datas = $fetched_data; // $fetched_data store all data which is selected          from database
// now in php use foreach loop
$previous_colm = "";
foreach($datas as $data){
if($previous_colm == $data['name']){
// echo without printing column name again
echo $data['activity']." ".$data['payment'];
}else{
// echo with new column name
echo echo $data['name']." ".$data['activity']." ".$data['payment'];
}
$previous_colm = $data['name'];
}

теперь это будет выводить так же, как вы хотите … !!!

1

Другие решения

$arr = array(
array('name' => 'english', 'activity' => 'activ A', 'payment' => 20),
array('name' => 'english', 'activity' => 'activ B', 'payment' => 25),
array('name' => 'english', 'activity' => 'activ c', 'payment' => 30),
array('name' => 'biology', 'activity' => 'activ d', 'payment' => 50),
array('name' => 'biology', 'activity' => 'activ e', 'payment' => 60),
);

$different_names = get_different_names($arr);
echo "Name Activity Payment";
display($different_names, $arr);



function display($different_names, $arr) {
foreach($different_names as $name) {
foreach($arr as $row) {
if($row['name'] == $name)
echo "</br> {$row['name']}  {$row['activity']} {$row['payment']} ";
}
}
}

function get_different_names($arr) {
$different_names = array();
foreach($arr as $row) {
if(!in_array($row['name'], $different_names))
$different_names[] = $row['name'];
}
return $different_names;
}

постскриптум
Решение Зеби Раджпота хорошее. Но я не думаю, что он даст желаемый результат, если результат не отсортирован по название.

0

По вопросам рекламы [email protected]