首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从PHP数组中取消设置数字索引元素?

如何从PHP数组中取消设置数字索引元素?
EN

Stack Overflow用户
提问于 2018-10-03 05:15:47
回答 4查看 356关注 0票数 3

我有一个数组集合,它包含数字索引和非数字索引。我想取消所有的数字索引。

我的阵列就像这样。

代码语言:javascript
运行
复制
Array
(

    [554] => Array
        (
            [0] => 554
            [1] => Jiaqi Zheng
            [2] => Female
            [3] => 28
            [4] => Table Tennis
            [5] => 
            [6] => 
            [7] => 
            [8] => 
            [rank] => 554
            [athlet_name] => Jiaqi Zheng
            [gender] => Female
            [sport] => Table Tennis
        )

    [555] => Array
        (
            [0] => 555
            [1] => Zach Ziemek
            [2] => Male
            [3] => 23
            [4] => Athletics
            [5] => 
            [6] => 
            [7] => 
            [8] => 
            [rank] => 555
            [athlet_name] => Zach Ziemek
            [gender] => Male
            [sport] => Athletics
        )
)

这里我必须取消所有的数字索引。

我用的是这种不固定的东西,它对我来说很好。

代码语言:javascript
运行
复制
unset(
                     $history_years_wise_country_wise_details_arr[     $history_years_wise_country_wise_details_info[0]][0],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][1],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][2],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][3],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][4],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][5],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][6],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][7],
                      $history_years_wise_country_wise_details_arr[$history_years_wise_country_wise_details_info[0]][8]
                      );

有什么办法可以减少代码行吗?这里0到8是一个系列。

是否可以在一行代码中取消所有索引,因为所有索引都是数字的?

可以用正则表达式代替吗?

我想要像这样的

代码语言:javascript
运行
复制
unset(
                     $history_years_wise_country_wise_details_arr[     $history_years_wise_country_wise_details_info[0]][anything_which_will_take_index_from_0_to_8]);

有什么建议吗?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-10-03 05:51:02

您可以使用array_filter()is_string()函数作为其回调函数:

代码语言:javascript
运行
复制
$array = array_filter($array, 'is_string', ARRAY_FILTER_USE_KEY);
票数 3
EN

Stack Overflow用户

发布于 2018-10-03 05:20:34

用循环法。

代码语言:javascript
运行
复制
foreach ($array as $key => $value) {
    if (is_numeric ($key)) {
        unset($array [$key]);
    }
}

或者使用过滤器

代码语言:javascript
运行
复制
$filtered = array_filter(
    $array,
    function ($key) {
        return !is_numeric($key);
    },
    ARRAY_FILTER_USE_KEY
);
票数 2
EN

Stack Overflow用户

发布于 2018-10-03 05:18:58

您应该使用带有foreach函数的is_numeric循环,如

代码语言:javascript
运行
复制
foreach ($your_array as $key => $value) {
    if (!is_numeric($key)) {
        unset($arr[$key]);
    }
}

我认为不需要任何正则表达式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52620095

复制
相关文章

相似问题

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