Mam taki problem mam tablice dwuwymiarową i dla taki wartości
array(7) { [0]=> array(2) { [0]=> int(2) [1]=> int(1500) } [1]=> array(2) { [0]=> int(3) [1]=> int(1200) } [2]=> array(2) { [0]=> int(2) [1]=> int(1500) } [3]=> array(2) { [0]=> int(4) [1]=> int(600) } [4]=> array(2) { [0]=> int(2) [1]=> int(1500) } [5]=> array(2) { [0]=> int(3) [1]=> int(1200) } [6]=> array(2) { [0]=> NULL [1]=> int(0) } }
Ta funkcja zwraca tylko jedną wartość, a mianowicie tą
array(1) { [0]=> array(2) { [0]=> int(2) [1]=> int(1500) } }
A powinna zwrócić niepowtarzające się elementy.
Chodzi o to, żeby usuwała powtarzające się elementy tylko z 1 elemtu tablicy.
czyli ta rtablica po prztworzeniu miała by wyglądać tak
array(7) { [0]=> array(2) { [0]=> int(2) [1]=> int(1500) } [1]=> array(2) { [0]=> int(3) [1]=> int(1200) } [3]=> array(2) { [0]=> int(4) [1]=> int(600) [6]=> array(2) { [0]=> NULL [1]=> int(0) } }
Tu daje kod źródłowy
public function sortuj_substancje($tablica) {
$tymczasowa = array();
$nowa_tablica = array();
$k = 0;
$z = 0;
for ($i=0;$i<= count($tablica);$i++) {
$tymczasowa[0][0] = $tablica[$i][0];
$tymczasowa[0][1] = $tablica[$i][1];
//$nowa_tablica[$i][0] = $tablica[$i][0];
//$nowa_tablica[$i][1] = $tablica[$i][1];
for ($j=0;$j <= count($tablica);$j++) {
if ($tablica[$i][0] == $tablica[$j][0]) {
$nowa_tablica[$k][0] = $tablica[$i][0];
$nowa_tablica[$k][1] += $tablica[$j][1];
// print $tablica[$j][1] . "<br>";
//$k++;
}
}
$k++;
}
return $nowa_tablica;
}
$ta[0][0] = 2;
$ta[0][1] = 300;
$ta[1][0] = 3;
$ta[1][1] = 400;
$ta[2][0] = 2;
$ta[2][1] = 500;
$ta[3][0] = 4;
$ta[3][1] = 600;
$ta[4][0] = 2;
$ta[4][1] = 700;
$ta[5][0] = 3;
$ta[5][1] = 800;
$a = $substancja->sortuj_substancje($ta);
$a = array_unique($a);
var_dump($a);