如何在Array php中删除一个值

时间:2016-04-28 08:03:57

标签: php arrays

请帮忙 当我想要你从阵列buu中删除一个元素后,当我打印数组时,它显示错误 4 6 2 注意未定义的偏移量:第16行的3

<?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>";
    }
?>

3 个答案:

答案 0 :(得分:0)

你应该使用&#34; array_values()&#34;重新索引数组。您可以在此处找到解释:http://php.net/manual/en/language.types.array.php#language.types.array.useful-funcs

答案 1 :(得分: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>";
}
?>

答案 2 :(得分: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 />";