【问题标题】:How to remove index from array in PHP?如何从 PHP 中的数组中删除索引?
【发布时间】:2013-05-12 01:32:53
【问题描述】:

假设我在php中有这样一个数组:

$ray =

Array
(
    [0] => Array
        (
            [id] => 1
            [0] => 1
            [ip] => 127.0.0.1
            [1] => 127.0.0.1
            [username] => local_me
            [2] => local_me
            [last_visit] => 2013-05-17 02:12:07
            [3] => 2013-05-17 02:12:07
        )

    [1] => Array
        (
            [id] => 2
            [0] => 2
            [ip] => 127.2.2.3
            [1] => 127.2.2.3
            [username] => Anonymous42
            [2] => Anonymous42
            [last_visit] => 2013-05-16 16:07:46
            [3] => 2013-05-16 16:07:46
        )

)

我想删除这个数组所有元素的ip(和'1')“列”。我该怎么做?

谢谢!

【问题讨论】:

    标签: php arrays indexing key


    【解决方案1】:
    foreach ($ray as &$item)
        unset($item['ip'],$item[1]);
    

    【讨论】:

    • @Mark Parnell,你为什么在 '&$item' 中使用 '&'?
    • 传递项目by reference,以便更新原始数组。
    【解决方案2】:

    这个问题之前在这里问过:PHP Remove key from associative array

    从数组中删除一个键非常简单,只需使用 unset 方法即可。

    foreach($ray as $key => $value){
       if(array_key_exists('id', $value){
          unset($ray[$key]['id'];
       }
       elseif(array_key_exists('1', $value){
          unset($ray[$key]['1'];
       }
    }
    

    当然,没有更多的选择可以更有效地做到这一点,我只是举个例子。

    【讨论】:

    • 谢谢!但对我来说,简单的定义是“更少的代码行”,我试图找到(如果存在)一个函数直接做到这一点。不过,感谢您的努力!
    猜你喜欢
    • 2014-11-07
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2012-02-12
    • 2021-11-29
    • 2012-12-27
    相关资源
    最近更新 更多