从PHP中删除数组中的所有非字符串元素

时间:2014-10-14 13:01:40

标签: php arrays

我在PHP中有一个数组,它可能包含各种类型的元素。如何只保留字符串元素,并删除所有其他元素?

我知道我能做到

foreach ($array as $key => $val)
  if (gettype($val) !== 'string')
    unset($array[$key]);

但我想要一种更简单的方法来做到这一点 注意:我不关心数组的密钥以及它们是否保持不变。

1 个答案:

答案 0 :(得分:3)

您可以使用PHP的函数array_filter()is_string()在一行中完成。

$new = array_filter($array, "is_string");

array_filter()只保留数组的元素,如果传递给回调函数(在这种情况下为is_string())将使回调返回true。