在php中从数组中删除整行

在php中从数组中删除整行,php,arrays,unset,Php,Arrays,Unset,如何从数组中删除整行?当按下删除按钮时,应删除整行 我的数组如下所示: $liste[0][0] = email-user1 $liste[0][1]= password-user1 $liste[1][0] = email-user2 $liste[1][1]= password-user2 因此,如果我删除user1,user2应该取代user1(应该消失) $liste[0][0]、$liste[0][1]和$liste[0][2]都是实数,只有一个值数组(值、值、值)(内部数组)分配给

如何从数组中删除整行?当按下删除按钮时,应删除整行

我的数组如下所示:

$liste[0][0] = email-user1
$liste[0][1]= password-user1
$liste[1][0] = email-user2
$liste[1][1]= password-user2
因此,如果我删除user1,user2应该取代user1(应该消失)


$liste[0][0]
$liste[0][1]
$liste[0][2]
都是实数,只有一个值
数组(值、值、值)
(内部数组)分配给
$liste[0]
(外部数组)

取消设置此(外部)数组值
$liste[0]
就足够了:

unset($liste[$id]);
如果您关心此数组的键(我看到您从0..n开始循环),则需要使用以下命令重新为数组编制索引:

$liste = array_values($liste);
这将使数组的行为更像其他编程语言中通常使用的数组

好的做法是使用foreach而不是for。在这种情况下,不需要重新编制索引:

for ($liste as $key=>$value){
    if ("$key"=="$id"){
        unset($liste[$key]);
    }
但无论如何,你不必为了找到一个键而在数组中循环。这样做就够了:

if (isset($liste[$id])) { /* optional: check if the key exists */ }

unset($liste[$id]);
您可以使用以下方法:

请尝试以下代码:

$liste[0][0] = "email-user1";
$liste[0][1]= "password-user1";
$liste[1][0] = "email-user2";
$liste[1][1]= "password-user2";
$liste[2][0] = "email-user3";
$liste[2][1]= "password-user3";

unset($liste[1]); // say you want to delete this row
$new_arr = $liste;
unset($liste);
$i=0;
foreach($new_arr as $value){
    $liste[$i] = $value;
    $i++;
}

只需取消设置第一个键:
unset($liste[$id])数组没有“行”,它们包含元素。如果您只想删除键为0的元素,那么为什么
unset($liste[$id])
不起作用?如果您想重置数组键,您还可以在取消元素设置后使用
array\u values()
,这将大量清理代码。是否仍然存在故障。我用我的函数更新了帖子以将其保存到fiel,但我在内爆时总是会出错。如果您还没有解决它,请尝试强制转换内爆方法的第二个参数,如下所示:
$zeile=in爆(“|”),(array)$zArray),请告诉我。
if (isset($liste[$id])) { /* optional: check if the key exists */ }

unset($liste[$id]);
array_splice($liste, $id, 1);
$liste[0][0] = "email-user1";
$liste[0][1]= "password-user1";
$liste[1][0] = "email-user2";
$liste[1][1]= "password-user2";
$liste[2][0] = "email-user3";
$liste[2][1]= "password-user3";

unset($liste[1]); // say you want to delete this row
$new_arr = $liste;
unset($liste);
$i=0;
foreach($new_arr as $value){
    $liste[$i] = $value;
    $i++;
}