function werk niet?!?!?!

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
ik heb een functie gemaakt die een array aangeboden krijg
array ('19-03-2010','23-06-2009','26-09-2010')

vervolgens gaat hij door de volgende functie:
PHP:
function dates_backups_made($zip_array)
{
$dagen = array();
$maanden = array();
$jaren = array();
$men_day = array();//check dagen dubbelle backup 
$men_month = array();
$men_year = array();
$x = 0;
$y = 0;
$z = 0;
for ($i=0; $i < count($zip_array); $i++)
{
$datum = explode('-',$zip_array[$i][1]);
if ($datum[2] == date('Y'))
	{
	if ($datum[1] == date('m'))
		{
			if (!in_array($datum[0],$men_day, TRUE))

			{
			$dagen[$z]= array($datum[0],$datum[1],$datum[2]);
			$z++;
			$men_day[$i] = $datum[0];
			}
		}
		else
		{
	
			$maanden[$x] = array($datum[0],$datum[1],$datum[2]);
			$x++;
			
		}
	}
	else
	{
		if (!in_array($datum[2],$men_year, TRUE))
		{
		$jaren[$y] = array($datum[0],$datum[1],$datum[2]);
		$y++;
		$men_year = $datum[2];
		}
	}
}
$return = array($dagen,$maanden,$jaren);
return $return;
}

de bedoeling is dat de dagen maar een keer voorkomt in de return
dat geld ook voor de maanden en jaren.
met wat ik heb worden de dagen wel gecontrolleerd maar bij de jaren krijg ik de volgende error

[CODE]Warning: in_array() [function.in-array]: Wrong datatype for second argument in 
[/CODE]

kan iemand mij vertellen waar ik de fout in ga?
 
Als de array er zo uitziet als in je bericht (array ('19-03-2010','23-06-2009','26-09-2010')) klopt deze regel niet:
PHP:
$datum = explode('-',$zip_array[$i][1]);
$zip_array[$i][1] is namelijk het tweede teken van datum $i (in het voorbeeld dus '9', '3' en '6').
Probeer het eens met
PHP:
$datum = explode('-',$zip_array[$i]);
 
Code:
Array ( [0] => Array ( [0] => vannimwegen [1] => 20-03-2010 [2] => 15h10m57 [3] => zip ) [1] => Array ( [0] => vannimwegen [1] => 21-01-2010 [2] => 11h11m11 [3] => zip ) [2] => Array ( [0] => vannimwegen [1] => 21-02-2010 [2] => 11h10m43 [3] => zip ) [3] => Array ( [0] => vannimwegen [1] => 21-02-2010 [2] => 11h11m29 [3] => zip ) [4] => Array ( [0] => vannimwegen [1] => 21-03-2010 [2] => 11h42m39 [3] => zip ) [5] => Array ( [0] => vannimwegen [1] => 21-03-2010 [2] => 18h26m30 [3] => zip ) [6] => Array ( [0] => vannimwegen [1] => 21-03-2010 [2] => 18h27m08 [3] => zip ) [7] => Array ( [0] => vannimwegen [1] => 22-03-2009 [2] => 11h17m05 [3] => zip ) [8] => Array ( [0] => vannimwegen [1] => 22-03-2010 [2] => 11h26m52 [3] => zip ) [9] => Array ( [0] => vannimwegen [1] => 23-03-2009 [2] => 11h17m05 [3] => zip ) [10] => Array ( [0] => vannimwegen [1] => 23-03-2010 [2] => 11h17m05 [3] => zip ) )

dit is de print_r van de array.

het werkt, toen ik het eerst filter toe paste op $dagen werkte het nog netje

maar toen ik het op $maanden en zoals in de post $jaren kreeg ik op de 2de en 3de filter
een error.
 
Hoewel ik het probleem niet kan reproduceren denk ik dat het probleem in regel 41 zit.
PHP:
$men_year = $datum[2];
Na het uitvoeren hiervan is $men_year geen array meer. Waardoor je in regel 37
PHP:
if (!in_array($datum[2],$men_year, TRUE))
als tweede argument geen array meer hebt.
 
klopt, was ik gisteravond ook achter gekomen. kon me zelf wel voor mijn kop slaan.

was denk ik een beetje woordblind ofzo, heb er zeker 100x overheen gelezen.

Maar voor ik een nieuw threath begin, heb ik nog een klein vraagje.

ben nog niet zo goed bekent met array's.

ik wil namelijk uit de array de gegevns hebben die voldoen aan een opgegeven datum.

hoe kan ik dat op de simpelste manier uit de array vissen?

alvast bedank, en ook voor het kijken naar mijn function!
 
En dit evenveel geheugen maar kan sneller zijn

bakup['jaar']['maand']['dag']=>new objectref
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan