【发布时间】:2014-10-26 04:41:51
【问题描述】:
所以我有一个这样的 PHP 数组:
Array
(
[0] => Array
(
[offset] => 1
[0] => 1
[name] => Value:990937970
[1] => Value:990937970
)
[1] => Array
(
[offset] => 2
[0] => 2
[name] => Value:482758260
[1] => Value:482758260
)
[2] => Array
(
[offset] => 3
[0] => 3
[name] => Value:2045053536
[1] => Value:2045053536
)
)
但我想改一下,不返回数字键,像这样:
Array
(
[0] => Array
(
[offset] => 1
[name] => Value:990937970
)
[1] => Array
(
[offset] => 2
[name] => Value:482758260
)
[2] => Array
(
[offset] => 3
[name] => Value:2045053536
)
)
我的问题:有没有一种简单的方法(没有foreach 或while 循环)去除这些数字键?
我知道我可以做一个foreach 来检查 $key 是否是一个字符串;但是,循环会添加到我的代码的 cyclomatic complexity 中,所以我试图避免它们。
【问题讨论】:
-
这些数组是凭空出现的,还是来自数据库查询? (这可能更容易更改为仅返回关联数组)
-
它们来自数据库查询,但是最好知道如何在不知道确切键的数组上执行此操作。 (也有一些 API 可以返回这些类型的数组。)
-
查看 array_intersect/filter 答案一式两份;虽然可能需要对嵌套列表进行第二次回调,但仍然比仅使用 *FETCH_ASSOC 慢。
-
@mario 我无法让任何这些方法适用于该数组(仅影响顶级数组)