Ik heb een stukje code om na te gaan of barcodes voorkomen in een array, ik kon niet gewoon met de in_array werken omdat de values van de array meerdere barcodes kunnen bevatten, gescheiden door een ";".
De barcode kan ook bij meerdere key's terug komen, vandaar deze functie die als resultaat "False" geeft als het niet gevonden is, of een array met de sleutels waarbij de needle gevonden is in de value.
Echter krijg ik soms false positives, dit is de code:
ik kreeg vreemd resultaat dus heb wat logs toegevoegd:
zo zouden de logs eruit moeten zien indien een code niet gevonden is.
MAAR... Af en toe krijg ik dit:
kan iemand mij uitleggen waarom hij positie 6 teruggeeft bij het zoeken van 11010104 in 00060783? Want ik snap het niet meer...
De barcode kan ook bij meerdere key's terug komen, vandaar deze functie die als resultaat "False" geeft als het niet gevonden is, of een array met de sleutels waarbij de needle gevonden is in de value.
Echter krijg ik soms false positives, dit is de code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| public function search_product_usercode_array($needle, $haystack){ $ar = array(); foreach ($haystack as $key => $item) { $pos = false; log_message('debug', "look for: " . $needle); log_message('debug', "in: " . $item); $pos = strpos($item, $needle); log_message('debug', "pos: " . $pos); if ($pos !== false) { $ar[] = $key; } } if (isset($ar[0])){ return $ar; } else{ return false; } } |
ik kreeg vreemd resultaat dus heb wat logs toegevoegd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| DEBUG - 2015-09-02 15:47:06 --> look for: 11010098 DEBUG - 2015-09-02 15:47:06 --> in: 00061117 DEBUG - 2015-09-02 15:47:06 --> pos: DEBUG - 2015-09-02 15:47:06 --> look for: 11010098 DEBUG - 2015-09-02 15:47:06 --> in: 00061094 DEBUG - 2015-09-02 15:47:06 --> pos: DEBUG - 2015-09-02 15:47:06 --> look for: 11010098 DEBUG - 2015-09-02 15:47:06 --> in: 01060317 DEBUG - 2015-09-02 15:47:06 --> pos: DEBUG - 2015-09-02 15:47:06 --> look for: 11010098 DEBUG - 2015-09-02 15:47:06 --> in: 00060783 DEBUG - 2015-09-02 15:47:06 --> pos: |
zo zouden de logs eruit moeten zien indien een code niet gevonden is.
MAAR... Af en toe krijg ik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| DEBUG - 2015-09-02 15:47:06 --> look for: 11010104 DEBUG - 2015-09-02 15:47:06 --> in: 00061117 DEBUG - 2015-09-02 15:47:06 --> pos: DEBUG - 2015-09-02 15:47:06 --> look for: 11010104 DEBUG - 2015-09-02 15:47:06 --> in: 00061094 DEBUG - 2015-09-02 15:47:06 --> pos: DEBUG - 2015-09-02 15:47:06 --> look for: 11010104 DEBUG - 2015-09-02 15:47:06 --> in: 01060317 DEBUG - 2015-09-02 15:47:06 --> pos: DEBUG - 2015-09-02 15:47:06 --> look for: 11010104 DEBUG - 2015-09-02 15:47:06 --> in: 00060783 DEBUG - 2015-09-02 15:47:06 --> pos: 6 |
kan iemand mij uitleggen waarom hij positie 6 teruggeeft bij het zoeken van 11010104 in 00060783? Want ik snap het niet meer...
Just me