<?php
$sdata=
'{"1":{"A":"reference","B":"dob","C":""},"2":{"A":"SMI13","B":"03\/12\/1940","C":""},"3":{"A":"JON11","B":"12\/04\/1987","C":""},"4":{"A":"TAY29","B":"02\/20\/1967","C":""},"5":{"A":"WHI09","B":"11\/11\/1987","C":""},"6":{"A":"EVA10","B":"10\/30\/1988","C":""},"7":{"A":"ROB52","B":"09\/24\/2000","C":""},"8":{"A":"WAL99","B":"01\/01\/2001","C":""},"9":{"A":"WIL45","B":"04\/27\/1976","C":""},"10":{"A":"SMI27","B":"05\/20\/1999","C":""},"11":{"A":"COO87","B":"10\/13\/1985","C":""}}';
$data = json_decode($sdata,true);
echo "---------------- input : \n";
var_dump($data);
//I have no idea what the hell is this:
/*
foreach($keys as $k=>$v) {
$keys[$k] =$data[1][$v];
if($keys[$k]==""){
unset($keys[$k]);
}*/
//or this o.O
//change date format by selecting each dob as Dobs and changing each dobs
/*
foreach($data as $k){
// print_r($v);
foreach($k as $key => $val){
echo$data[$val]. "<br>";
if(preg_match("/^(((0[13578]|1[02])\/(0[1-9]|[12]\d|3[01])\/((19|[2-9]\d)\d{2}))|((0[13456789]|1[012])\/(0[1-9]|[12]\d|30)\/((19|[2-9]\d)\d{2}))|(02\/(0[1-9]|1\d|2[0-8])\/((19|[2-9]\d)\d{2}))|(02\/29\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/",$val)) {
$originalDate = $val;
$newDate = date("Y-m-d", strtotime($originalDate));
$val = $newDate;
// echo $key ;
}
}
}
}
//or this .....
unset($key);
*/
echo "---------------- Processing \n";
foreach($data as &$record){
foreach($record as $key => $val){
//you might want to consider using preg_replace_callback instead:
if(preg_match("/^(((0[13578]|1[02])\/(0[1-9]|[12]\d|3[01])\/((19|[2-9]\d)\d{2}))|((0[13456789]|1[012])\/(0[1-9]|[12]\d|30)\/((19|[2-9]\d)\d{2}))|(02\/(0[1-9]|1\d|2[0-8])\/((19|[2-9]\d)\d{2}))|(02\/29\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/",$val)) {
echo "match! $val \n";
$record [$key] = date("Y-m-d", strtotime($val));
}
}
}
unset($record);
echo "---------------- Result \n";
var_dump($data);
- Output for 5.6.38, 7.1.0 - 7.1.22, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- ---------------- input :
array(11) {
[1]=>
array(3) {
["A"]=>
string(9) "reference"
["B"]=>
string(3) "dob"
["C"]=>
string(0) ""
}
[2]=>
array(3) {
["A"]=>
string(5) "SMI13"
["B"]=>
string(10) "03/12/1940"
["C"]=>
string(0) ""
}
[3]=>
array(3) {
["A"]=>
string(5) "JON11"
["B"]=>
string(10) "12/04/1987"
["C"]=>
string(0) ""
}
[4]=>
array(3) {
["A"]=>
string(5) "TAY29"
["B"]=>
string(10) "02/20/1967"
["C"]=>
string(0) ""
}
[5]=>
array(3) {
["A"]=>
string(5) "WHI09"
["B"]=>
string(10) "11/11/1987"
["C"]=>
string(0) ""
}
[6]=>
array(3) {
["A"]=>
string(5) "EVA10"
["B"]=>
string(10) "10/30/1988"
["C"]=>
string(0) ""
}
[7]=>
array(3) {
["A"]=>
string(5) "ROB52"
["B"]=>
string(10) "09/24/2000"
["C"]=>
string(0) ""
}
[8]=>
array(3) {
["A"]=>
string(5) "WAL99"
["B"]=>
string(10) "01/01/2001"
["C"]=>
string(0) ""
}
[9]=>
array(3) {
["A"]=>
string(5) "WIL45"
["B"]=>
string(10) "04/27/1976"
["C"]=>
string(0) ""
}
[10]=>
array(3) {
["A"]=>
string(5) "SMI27"
["B"]=>
string(10) "05/20/1999"
["C"]=>
string(0) ""
}
[11]=>
array(3) {
["A"]=>
string(5) "COO87"
["B"]=>
string(10) "10/13/1985"
["C"]=>
string(0) ""
}
}
---------------- Processing
match! 03/12/1940
match! 12/04/1987
match! 02/20/1967
match! 11/11/1987
match! 10/30/1988
match! 09/24/2000
match! 01/01/2001
match! 04/27/1976
match! 05/20/1999
match! 10/13/1985
---------------- Result
array(11) {
[1]=>
array(3) {
["A"]=>
string(9) "reference"
["B"]=>
string(3) "dob"
["C"]=>
string(0) ""
}
[2]=>
array(3) {
["A"]=>
string(5) "SMI13"
["B"]=>
string(10) "1940-03-12"
["C"]=>
string(0) ""
}
[3]=>
array(3) {
["A"]=>
string(5) "JON11"
["B"]=>
string(10) "1987-12-04"
["C"]=>
string(0) ""
}
[4]=>
array(3) {
["A"]=>
string(5) "TAY29"
["B"]=>
string(10) "1967-02-20"
["C"]=>
string(0) ""
}
[5]=>
array(3) {
["A"]=>
string(5) "WHI09"
["B"]=>
string(10) "1987-11-11"
["C"]=>
string(0) ""
}
[6]=>
array(3) {
["A"]=>
string(5) "EVA10"
["B"]=>
string(10) "1988-10-30"
["C"]=>
string(0) ""
}
[7]=>
array(3) {
["A"]=>
string(5) "ROB52"
["B"]=>
string(10) "2000-09-24"
["C"]=>
string(0) ""
}
[8]=>
array(3) {
["A"]=>
string(5) "WAL99"
["B"]=>
string(10) "2001-01-01"
["C"]=>
string(0) ""
}
[9]=>
array(3) {
["A"]=>
string(5) "WIL45"
["B"]=>
string(10) "1976-04-27"
["C"]=>
string(0) ""
}
[10]=>
array(3) {
["A"]=>
string(5) "SMI27"
["B"]=>
string(10) "1999-05-20"
["C"]=>
string(0) ""
}
[11]=>
array(3) {
["A"]=>
string(5) "COO87"
["B"]=>
string(10) "1985-10-13"
["C"]=>
string(0) ""
}
}
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
---------------- input :
array(11) {
[1]=>
array(3) {
["A"]=>
string(9) "reference"
["B"]=>
string(3) "dob"
["C"]=>
string(0) ""
}
[2]=>
array(3) {
["A"]=>
string(5) "SMI13"
["B"]=>
string(10) "03/12/1940"
["C"]=>
string(0) ""
}
[3]=>
array(3) {
["A"]=>
string(5) "JON11"
["B"]=>
string(10) "12/04/1987"
["C"]=>
string(0) ""
}
[4]=>
array(3) {
["A"]=>
string(5) "TAY29"
["B"]=>
string(10) "02/20/1967"
["C"]=>
string(0) ""
}
[5]=>
array(3) {
["A"]=>
string(5) "WHI09"
["B"]=>
string(10) "11/11/1987"
["C"]=>
string(0) ""
}
[6]=>
array(3) {
["A"]=>
string(5) "EVA10"
["B"]=>
string(10) "10/30/1988"
["C"]=>
string(0) ""
}
[7]=>
array(3) {
["A"]=>
string(5) "ROB52"
["B"]=>
string(10) "09/24/2000"
["C"]=>
string(0) ""
}
[8]=>
array(3) {
["A"]=>
string(5) "WAL99"
["B"]=>
string(10) "01/01/2001"
["C"]=>
string(0) ""
}
[9]=>
array(3) {
["A"]=>
string(5) "WIL45"
["B"]=>
string(10) "04/27/1976"
["C"]=>
string(0) ""
}
[10]=>
array(3) {
["A"]=>
string(5) "SMI27"
["B"]=>
string(10) "05/20/1999"
["C"]=>
string(0) ""
}
[11]=>
array(3) {
["A"]=>
string(5) "COO87"
["B"]=>
string(10) "10/13/1985"
["C"]=>
string(0) ""
}
}
---------------- Processing
match! 03/12/1940
match! 12/04/1987
match! 02/20/1967
match! 11/11/1987
match! 10/30/1988
match! 09/24/2000
match! 01/01/2001
match! 04/27/1976
match! 05/20/1999
match! 10/13/1985
---------------- Result
array(11) {
[1]=>
array(3) {
["A"]=>
string(9) "reference"
["B"]=>
string(3) "dob"
["C"]=>
string(0) ""
}
[2]=>
array(3) {
["A"]=>
string(5) "SMI13"
["B"]=>
string(10) "1940-03-12"
["C"]=>
string(0) ""
}
[3]=>
array(3) {
["A"]=>
string(5) "JON11"
["B"]=>
string(10) "1987-12-04"
["C"]=>
string(0) ""
}
[4]=>
array(3) {
["A"]=>
string(5) "TAY29"
["B"]=>
string(10) "1967-02-20"
["C"]=>
string(0) ""
}
[5]=>
array(3) {
["A"]=>
string(5) "WHI09"
["B"]=>
string(10) "1987-11-11"
["C"]=>
string(0) ""
}
[6]=>
array(3) {
["A"]=>
string(5) "EVA10"
["B"]=>
string(10) "1988-10-30"
["C"]=>
string(0) ""
}
[7]=>
array(3) {
["A"]=>
string(5) "ROB52"
["B"]=>
string(10) "2000-09-24"
["C"]=>
string(0) ""
}
[8]=>
array(3) {
["A"]=>
string(5) "WAL99"
["B"]=>
string(10) "2001-01-01"
["C"]=>
string(0) ""
}
[9]=>
array(3) {
["A"]=>
string(5) "WIL45"
["B"]=>
string(10) "1976-04-27"
["C"]=>
string(0) ""
}
[10]=>
array(3) {
["A"]=>
string(5) "SMI27"
["B"]=>
string(10) "1999-05-20"
["C"]=>
string(0) ""
}
[11]=>
array(3) {
["A"]=>
string(5) "COO87"
["B"]=>
string(10) "1985-10-13"
["C"]=>
string(0) ""
}
}
preferences:
181.88 ms | 409 KiB | 171 Q