Объединить одинаковые значения ячеек в массиве

BrdNLSrg

Новичок
Здравствуйте помогите с задачей, надо объединить одинаковые значения ячеек в n-мерном массиве. Именно в массиве без БД. Подробнее на картинках.
До

После


Сам массив:
PHP:
$text["id"] = array(1,2,3,4,5);
$text["Name"] = array("one","two","three","four","five");
$text["Articles"] = array("number one","number two", "number three","number four","number five");
$text["date"] = array("21.11.2012","21.11.2012","22.11.2012","23.11.2012","24.11.2012");
 

Фанат

oncle terrible
Команда форума
нужно пройтись в цикле по $text["date"], и составить ещё один массив, типа такого
$text["rowspan"] = array(2,0,1,1,1);
когда 0 - соответственно, ничего не выводится.
 

BrdNLSrg

Новичок
Спасибо. Все получилось. Кому интересно выкладываю код.
PHP:
$text["id"] = array(1,2,3,4,5);
	$text["Name"] = array("one","two","three","four","five");
	$text["Articles"] = array("number one","number two", "number three","number four","number five");
	$text["date"] = array("21.11.2012","21.11.2012","22.11.2012","22.11.2012","22.11.2012");


echo "<table border='1'>";	
echo "<tr>";
  	foreach ($text as $key => $value) {	
  		echo "<td>$key</td>";
  	}
 echo "</tr>";
//////////////////////////////////////////////////////////////////
 $rowspan = array(1, 1, 1, 1, 1);
 $buf = "";
 $count = 1;
 $n = 0;
//////////////////////////////////////////////////////////////////
 for ($i=0; $i < count($text["id"]); $i++) { 
  foreach ($text as $key => $value) {	
		if($value[$i] == $text['date'][$i]){
			
			 if($i+1 < count($text['date'])){
			 	if($text["date"][$i] == $text["date"][$i+1]){
			 		if($text["date"][$i] == $buf){
			 			$count++;
			 			$rowspan[$i-$n] = $count;
				 		$rowspan[$i+1] = 0;
			 			$n++;
			 			$buf = $text["date"][$i];
			 		} else{
			 				$n=0;
			 				$count = 1;
			 				$count++;
				 			$rowspan[$i-$n] = $count;
			 				$rowspan[$i+1] = 0;
			 				$n++;
			 				$buf = $text["date"][$i];
			 		}		
			 	}
			}
		}
	}	

}
 ///////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
 for ($i=0; $i < count($text["id"]); $i++) { 
 echo "<tr>";
  foreach ($text as $key => $value) {	
		if($value[$i] == $text['date'][$i]){
			if($rowspan[$i] == 0)
				break;
			else echo "<td rowspan='".$rowspan[$i]."' >".$value[$i]."</td>";	
		}
		else{
			echo "<td rowspan='1'>".$value[$i]."</td>"; 
		}
	
}
 echo "</tr>";
 }
echo "</table>";
 

Фанат

oncle terrible
Команда форума
проверка
PHP:
if($value[$i] == $text['date'][$i]){
по-моему, лишняя.
она ведь уже делалась выше, при подготовке массива. и результат записан в rowspan
 
Сверху