【问题标题】:Deleting an array inside a variable删除变量内的数组
【发布时间】:2018-05-24 13:59:02
【问题描述】:

在我的内容管理系统中,变量$data 输出以下内容:

Array ( [name] => last_visit [value] => 1211809129 [expire] => 1558705129 [domain] => [path] => / [prefix] => exp_ [httponly] => 1 [secure_cookie] => 0 ) 
Array ( [name] => last_activity [value] => 1527169129 [expire] => 1558705129 [domain] => [path] => / [prefix] => exp_ [httponly] => 1 [secure_cookie] => 0 ) 
Array ( [name] => csrf_token [value] => e39fe1edcd0bc48a6e35985069a [expire] => 1527176329 [domain] => [path] => / [prefix] => exp_ [httponly] => 1 [secure_cookie] => 0 ) 

我需要修改变量,删除一个数组,例如第二个数组,其“名称”为“last_activity”。

由于数组没有键,我无法选择它来删除它。

我原以为我可以使用 unset,比如:

unset($data[1]);

但这不起作用。

如何从变量中删除数组?

【问题讨论】:

  • 看起来你已经在一个循环中转储了 var_dumped。你能用 var_dump 代替 $data 吗?

标签: php arrays variables


【解决方案1】:

你可以这样做:

foreach ($data as $key => $value)
{
    if ($value['name'] === 'last_activity') {
        unset($data[$key]);
    }
}

【讨论】:

  • 这不会删除数组。它只会删除该数组中的那个键。
  • 这是一种肮脏的做法,而不是如何与数组交互(做一个 var_dump 并注意你已经破坏了结构)。正确的函数是array_splice
  • @Mike 如果 OP 需要结构保持完整(我对此表示怀疑),那么他可以选择你的答案 :)
【解决方案2】:

使用array_splice:

<?php
$data = array();
$data[] = ['name' => 'last_visit', 'value' => '1211809129', 'expire' => '1558705129', 'domain' => '', 'path' => '/', 'prefix' => 'exp_', 'httponly' => 1, 'secure_cookie' => 0];
$data[] = ['name' => 'last_activity', 'value' => '1527169129', 'expire' => '1558705129', 'domain' => '', 'path' => '/', 'prefix' => 'exp_', 'httponly' => 1, 'secure_cookie' => 0 ];
$data[] = ['name' => 'csrf_token', 'value' => 'e39fe1edcd0bc48a6e35985069a', 'expire' => '1527176329', 'domain' => '', 'path' => '/', 'prefix' => 'exp_', 'httponly' => 1, 'secure_cookie' => 0];

var_dump($data);

for($i = 0; $i < sizeof($data); $i++){
    if($data[$i]['name'] == 'last_activity'){
            array_splice($data, $i, $i);
    }
}

var_dump($data);
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-05
    • 2022-06-10
    • 1970-01-01
    • 2022-10-05
    • 2017-05-18
    • 1970-01-01
    • 2015-09-03
    • 2021-05-03
    相关资源
    最近更新 更多