2016-04-28 58 views
0

请帮助 时,我想哟当我打印阵列之后从阵列布欧中删除一个元素它显示错误注意未定义偏移:3行号16如何删除阵列的PHP的值

<?php 
    $value = 22; 
    $numbers = array(4, 6, 2, 22, 11); 
    $arrlength = count($numbers); 

    for($y = 0; $y < $arrlength ; $y++) { 
     if ($numbers[$y] == $value) { 
      unset($numbers[$y]); 
     } 
    } 
    $arrlength = count($numbers); 
    for($x = 0; $x < $arrlength; $x++) { 
     echo $numbers[$x]; 
     echo "<br>"; 
    } 
?> 
+1

在php中的数组不会重新索引,所以'$ numbers [3]'将会被取消定义。使用'foreach'来遍历数组或使用'array_values()'手动重新索引。 – jeroen

回答

0

使用array_values()

<?php 
$value = 22; 
$numbers = array(4, 6, 2, 22, 11); 
$arrlength = count($numbers); 

for($y = 0; $y < $arrlength ; $y++) { 
if ($numbers[$y] == $value) { 
    unset($numbers[$y]); 
} 
} 
$numbers = array_values($numbers); 
$arrlength = count($numbers); 
for($x = 0; $x < $arrlength; $x++) { 
echo $numbers[$x]; 
echo "<br>"; 
} 
?> 

检查在线演示:Click Here

OR

<?php 
$value = 22; 
$numbers = array(4, 6, 2, 22, 11); 
$arrlength = count($numbers); 

for($y = 0; $y < $arrlength ; $y++) { 
if ($numbers[$y] == $value) { 
    unset($numbers[$y]); 
} 
} 
//$numbers = array_values($numbers); 
//$arrlength = count($numbers); 
foreach($numbers as $key=>$num) { 
echo $num; 
echo "<br>"; 
} 
?> 
0

你要打印不存在关键

的元素试试这个:

<?php 
$value = 22; 
$numbers = array(4, 6, 2, 22, 11); 
$arrlength = count($numbers); 

for($y = 0; $y < $arrlength ; $y++) { 
    if ($numbers[$y] == $value) { 
     unset($numbers[$y]); 
    } 
} 
foreach($numbers as $k => $number) 
    echo "key: ". $k . " value: ". $number . "<br />";