Это мой массив:
array(4) {
[0]=>
array(500000) {
["1234"]=>
array(3) {
["fileName"]=>
string(10) "monkey.jpg"
["path"]=>
string(20) "animales/monkey.jpg"
["dateTime"]=>
string(19) "2016-10-12 19:46:25"
}
["3456"]=>
array(3) {
["fileName"]=>
string(9) "horse.jpg"
["path"]=>
string(19) "animales/horse.jpg"
["dateTime"]=>
string(19) "2016-10-12 19:46:25"
}
.... and many more...
}
... and many more...
}
Я хочу сохранить содержимое в своей базе данных:
$sql = "INSERT INTO files (id,fileName,path,dateTime) values(?,?,?,?) ";
foreach($array as $key => $value){
if(is_array($value)){
foreach($value as $key => $v){
foreach($v as $k => $item){
if(is_array($v)){
$s = str_replace("\\","",$v['dateTime']);
$d = strtotime($s);
$dateTime = date('Y.m.d H:i:s', $d);
$q->execute(array($key,$v['fileName'],$v['path'],$dateTime));
}
}
}
}
}
Моя проблема в том, что у меня более 500.000 записей.Так что моя система падает.Я думаю, это потому, что внутри цикла так много петель.Есть ли способ прочитать содержимое только одним циклом или каким-то другим способом быстрее?
Примечание: $array
- это сплайсированный массив, созданный следующим образом ($ array [] = array_splice ($ orinal_array, 0,count ($ original_array)); я действительно сделал это, чтобы сделать систему быстрее