Php 将项添加到数组中

Php 将项添加到数组中,php,arrays,Php,Arrays,当解释器到达$pDB->AddLine(5,“Test”)时,它停止响应! 它返回以下错误“致命错误:第21行中…超过了30秒的最大执行时间”我是否遗漏了什么?我应该改用array_push()吗 修正: 改变 用于($i=0;$im_pArray)$(i++){ 如果($i==$index){$temp[$i]=$input;$i=$i-1;}其他{$temp[$i]=$this->m_pArray[$i];} } 到 $done=0; 对于($i=0;$im_pArray)+1$(i+

当解释器到达$pDB->AddLine(5,“Test”)时,它停止响应! 它返回以下错误“致命错误:第21行中…超过了30秒的最大执行时间”我是否遗漏了什么?我应该改用array_push()吗


修正: 改变

用于($i=0;$im_pArray)$(i++){
如果($i==$index){$temp[$i]=$input;$i=$i-1;}其他{$temp[$i]=$this->m_pArray[$i];}
}

$done=0;
对于($i=0;$im_pArray)+1$(i++){
如果($i==$index&$done!=1){$temp[$index]=$input;$done=1;}其他($done==1){$temp[$i]=$this->m_pArray[$i-1];}其他{$temp[$i]=$this->m_pArray[$i];}
}
考虑一下你的代码

for($i=0;$i<count($this->m_pArray);$i++) {
  if($i == $index) {
    $temp[$i] = $input;
    $i = $i-1;
  } else {
    $temp[$i] = $this->m_pArray[$i];
  }
}
用于($i=0;$im_pArray)$(i++){
如果($i==$index){
$temp[$i]=$input;
$i=$i-1;
}否则{
$temp[$i]=$this->m_pArray[$i];
}
}
如果
$i==$index
,则立即从
$i
中减去一,然后再次循环。这将在
$i
中添加一个,使其再次等于
$index
,并且您将陷入相同的情况-永远!您需要将循环条件与在
if
分支(即
$temp
)中更改的内容绑定,或者完全更改此处的逻辑。

考虑您的代码

for($i=0;$i<count($this->m_pArray);$i++) {
  if($i == $index) {
    $temp[$i] = $input;
    $i = $i-1;
  } else {
    $temp[$i] = $this->m_pArray[$i];
  }
}
用于($i=0;$im_pArray)$(i++){
如果($i==$index){
$temp[$i]=$input;
$i=$i-1;
}否则{
$temp[$i]=$this->m_pArray[$i];
}
}

如果
$i==$index
,则立即从
$i
中减去一,然后再次循环。这将在
$i
中添加一个,使其再次等于
$index
,并且您将陷入相同的情况-永远!您需要将循环条件与在
if
分支(即
$temp
)中更改的内容联系起来,或者完全更改此处的逻辑。

在我看来,“AddLine”for循环中此行的最后一条语句是问题:

if($i == $index) { $temp[$i] = $input;$i = $i-1; }

一旦$i达到5(函数调用中的$index),您总是减少$i,但循环会再次增加它,因此不再继续。无限循环->超时。

在我看来,“AddLine”的for循环中这一行的最后一条语句是问题:

if($i == $index) { $temp[$i] = $input;$i = $i-1; }
一旦$i达到5(函数调用中的$index),您总是减少$i,但循环会再次增加它,因此不再继续。无限循环->超时

if($i == $index) { $temp[$i] = $input;$i = $i-1; }