Méthode filter($match) pour les recherches
This commit is contained in:
parent
2cf98451e2
commit
083814ab16
18
automate.php
18
automate.php
|
@ -103,22 +103,8 @@
|
|||
var_dump('INSERTING key0 to key99');
|
||||
|
||||
for( $i = 0 ; $i < 100 ; $i++ )
|
||||
echo $db->insert('key'.$i, array('data0_'.$i, 'data1_'.$i)) ? 'o' : '_';
|
||||
echo $db->insert('key'.$i, array('data0_'.$i, 'data1_'.$i)) ? '.' : '_';
|
||||
|
||||
|
||||
var_dump('FETCHING key0 : '); var_dump( $db->fetch('key0') );
|
||||
var_dump('FETCHING key1 : '); var_dump( $db->fetch('key1') );
|
||||
var_dump('FETCHING key2 : '); var_dump( $db->fetch('key2') );
|
||||
var_dump('FETCHING key3 : '); var_dump( $db->fetch('key3') );
|
||||
|
||||
var_dump('DELETING key0 : '. $db->delete('key0') );
|
||||
var_dump('DELETING key1 : '. $db->delete('key1') );
|
||||
var_dump('DELETING key2 : '. $db->delete('key2') );
|
||||
var_dump('DELETING key3 : '. $db->delete('key3') );
|
||||
|
||||
var_dump('FETCHING key0 : '); var_dump( $db->fetch('key0') );
|
||||
var_dump('FETCHING key1 : '); var_dump( $db->fetch('key1') );
|
||||
var_dump('FETCHING key2 : '); var_dump( $db->fetch('key2') );
|
||||
var_dump('FETCHING key3 : '); var_dump( $db->fetch('key3') );
|
||||
var_dump( $db->filter(array( 0 => 'data0_1' )));
|
||||
|
||||
$db->close();
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
public function insert($key, $data){
|
||||
/* (1) On vérifie que la clé est unique */
|
||||
if( array_key_exists($key, $this->index) )
|
||||
return false;
|
||||
return true;
|
||||
|
||||
/* (2) On ajoute les données aux fichier */
|
||||
$json_data = json_encode($data);
|
||||
|
@ -219,18 +219,31 @@
|
|||
/* (1) Si @data est un tableau associatif */
|
||||
if( is_array($data) ){
|
||||
|
||||
$filtered = array();
|
||||
foreach($this->index as $i=>$indexData){
|
||||
$this->driver->seek( $indexData['line'] );
|
||||
$dbData = json_decode( $this->driver->fgets(), true );
|
||||
|
||||
foreach($data as $key=>$value)
|
||||
if( isset($dbData[$key]) && preg_match("#$value#", $dbData[$key]) ){
|
||||
$filtered[$i] = $dbData;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $filtered;
|
||||
|
||||
|
||||
/* (2) Sinon on compare @data en tant que valeur simple */
|
||||
}else{
|
||||
|
||||
$this->tmp = sha1( json_encode($data) );
|
||||
return array_filter($this->index, array($this, 'callbackFilter'));
|
||||
return array_filter($this->index, array($this, 'simpleFilter'));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
protected function callbackFilter($e){ return $e['hash'] == $this->tmp; }
|
||||
protected function simpleFilter($e){ return $e['hash'] == $this->tmp; }
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue