Ik blijf nu al een poos hangen op iets, dus ik dacht, laat ik ut dan maar is vragen ;)

Ik heb een array, en met een foreach ga ik daar overheen, totdat $value is gevonden(dit staat normaal in func).

<?
$columnz = array_flip($this->dbTables[$db][$table]['_fields']);
$col = $columnz[$column];
foreach($this->dbTables[$db][$table] as $key=>$row){
	var_dump($key);
	if($key != '_fields'){
		var_dump($key);
		var_dump($this->dbTables[$db][$table],$value);
		if($row[$col] == $value){
			$return[] = $row;
		}
	}
}?>


Zo ziet de array eruit:


array(3) {
  ["_fields"]=>
  array(2) {
    [0]=>
    string(6) "sessid"
    [1]=>
    string(7) "content"
  }
  [0]=>
  array(2) {
    [0]=>
    string(32) "c4c16a64892190a9ec23b0ed304c2204"
    [1]=>
    string(155) "a:3:{s:9:"SessTimes";a:0:{}s:6:"UniqID";s:40:"32592a2713d3ea3e259ced6fded944c2954a4d04";s:12:"PT_AntiFlood";a:2:{s:4:"TijD";i:1213203193;s:5:"Views";i:1;}}"
  }
}


Met die var_dumps, debug ik een beetje en daar komt uit:
var_dump($key):
string(7) "_fields"
int "0"

var_dump($this->dbTables[$db][$table],$value):
Deze komt alleen als die array 2 elementen heeft :S
Bovenstaande en:
string "c4c16a64892190a9ec23b0ed304c2204" (is $value, input van functie, $column en $table zijn ook inputs van func)

En deze dus ook, alleen als er 2 elementen in zitten(behalve dan die _fields):
var_dump($key):
int "1" (dus alleen die 2de)


Pleaase, help me :(
ja en dus.....

wat is je probleem?

[edit]

Ik denk dat ik het al zie, je hebt een 2d array, dus moet je een foreach in een foreach gebruiken.

[/edit]
Ja, dat dus ook, maar die key moet zowieso al werken, maar daar loopt ie al vast :S

[edit]Hier loopt ie vast: if($key != '_fields'){[/edit]
Ik zie nog steeds geen probleem. Wat doet het script niet wat hij wel zou moeten doen?
zo iets?:
<?
$columnz = array_flip($this->dbTables[$db][$table]['_fields']);
$col = $columnz[$column];
foreach($this->dbTables[$db][$table] as $key=>$row){
var_dump($key);
if($key != '_fields' && is_array($row)){
foreach( $row as $k2 => $v2 )
{
//var_dump($key);
//var_dump($this->dbTables[$db][$table],$value);
//if($row[$col] == $value){
if($v2 == $value)
{
$return[] = $row;
}
}
}
}?>

edit:

<?php
$return[] = $row;
?>

moet dan misschien:

<?php
$return[] = $k2;
?>

zijn?

Nee, die 2de word hier omgezet in key, door die fields array:

$columnz = array_flip($this->dbTables[$db][$table]['_fields']);
$col = $columnz[$column];


Maar het gaat hier dus fout:

if($key != '_fields')


Maar ik weet dus niet wat...
<?php
$array = $this->dbTables[$db][$table];
// even de array verkleinen

foreach($array as $sKey => $sValue) {
if(is_array($sValue)) {
foreach($sValue as $sndKey => $sndValue) {
// alleen als in de array van _fields ook een soorgelijke code kan voorkomen, hoef je die check er op te zetten
if($sndValue == $value) {
// doe wat je moet doen
} else {
// doe wat je moet doen
}
}
} else {
// $sValue is geen array, dus zal de tweede foreach het niet doen
}
}
?>
Ik probeer met al die oplossingen nog wel een keer...(ff wachte want is op andere comp...)

Hoop dat ut werkt ;)

[edit]
Heb dit weggehaald, en werkt nu best ;)
if($key != '_fields'){
[/edit]

Reageren