【发布时间】:2021-05-20 08:00:05
【问题描述】:
作为练习,我需要创建一个搜索功能。在这个函数中,输入是一个值,输出是该值在数组中重复的次数。但显示错误:
“致命错误:Out of memory (allocated 178257920) (尝试分配 262144 bytes) in ... on line 51”
PHP代码是:
//here is first part of search function.
class searching extends JsonHelper {
public $s = 0;
public function search($index) {
$temp = $this->myarray;
$s = $this->s;
foreach ($temp as $value) {
if(!is_array($value)) {
if ($value == $index) {
echo "i found something";
$s += 1;
} else {
continue;
}
} else {
$this->searchB($value, $index , $temp);
}
}
}
//secend part of search for arrays that are deeper
function searchB($A, $B, $C) {
$s = $this->s;foreach ($A as $AA){
if (!is_array($AA)) {
if ($AA == $B) {
echo "i found something";
$s += 1;
} else {
}
} else {
$this->searchB($A, $B, $C); //line 51 is here
}
}
}
}
$object = new searching("jsonProject.json");
echo $object->search("pro8");
echo $object->s;
$object->s = 0;
显示有 4 个“pro8”的 json 文件
[
{
"id": 1,
"Client": "client 1",
"Project": "project 1",
"StartDate": "2018\/11\/02 16:57:35",
"CompletedDate": "",
"projectUrl": "project-1",
"pro": {
"pro2": "pro8",
"pro4": "pro8",
"pro6":
{
"pro7": "pro8",
"pro9": "pro8"
}
}
}
]
如何解决这个无限循环?
【问题讨论】: