首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除包含特定索引的多维数组元素?

如何删除包含特定索引的多维数组元素?
EN

Stack Overflow用户
提问于 2016-02-26 16:15:47
回答 2查看 60关注 0票数 0

在下面的数组中(我已经存储在$_SESSION['doc_brick_array']中),我尝试用brick0查找元素。我想删除这个元素,然后重新索引外部数组.我该怎么做?

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [brick0] => Array
                (
                    [city_name] => Lahore
                    [clinic_name] => shifa hospital
                    [attendant_name] => ali
                    [drd1_cell1] => 03017666454
                    [mbv] => 666
                    [brick_name] => LHR-0002
                    [clinic_address] => i-8 markaz
                    [drd1_phone] => 9798797
                    [drd1_cell2] => 04037777888
                    [drd1_email] => abc@yahoo.com
                    [visit_time] => m
                )

        )

    [1] => Array
        (
            [brick1] => Array
                (
                    [city_name] => Rawalpindi
                    [clinic_name] => aljanat hospital
                    [attendant_name] => kanzal
                    [drd1_cell1] => 03014544567
                    [mbv] => 6000
                    [brick_name] => 
                    [clinic_address] => i-9 markaz
                    [drd1_phone] => 07337837
                    [drd1_cell2] => 03017767575
                    [drd1_email] => abcd@yahoo.com
                    [visit_time] => m
                )

        )

)

我尝试过的代码

代码语言:javascript
复制
for($g=0; $g<=count($_SESSION['doc_brick_array']); $g++){
    if (($key = array_search($brick_code, $_SESSION['doc_brick_array'][$g])) !== false) {   
        unset($_SESSION['doc_brick_array'][$key]);  
        $_SESSION['doc_brick_array'] = array_values($_SESSION['doc_brick_array']);
    }   
}
EN

回答 2

Stack Overflow用户

发布于 2016-02-26 16:23:38

我想你现在想要的是值(),它来自PHP.net站点

array_values()返回数组中的所有值,并对数组进行数字索引。

例如:

代码语言:javascript
复制
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
   $a = array(1 => 'one', 3 => 'three');
   and NOT
   $a = array(1 => 'one', 2 =>'three');
*/

$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
票数 0
EN

Stack Overflow用户

发布于 2016-02-26 20:52:35

可以使用array_filter$_SESSION['doc_brick_array']中删除具有brick0键的任何元素。

代码语言:javascript
复制
$x = array_filter($_SESSION['doc_brick_array']), function($y) {
         return !isset($y['brick0']);
     });

然后使用array_values重新索引结果。

代码语言:javascript
复制
$_SESSION['doc_brick_array']) = array_values($x);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35656619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档