如何从数组中删除任何1个字符的字符串?

时间:2018-09-03 10:09:27

标签: php arrays filtering

因此,如果您有一个数组:

$ourArray[0] = "a";
$ourArray[1] = "bb";
$ourArray[2] = "c";
$ourArray[3] = "ddd";

与通过foreach语句运行数组并逐一检查每个字符相比,从数组中删除所有单个字符值的方法是否更短?

这是执行此任务的最快/最好的方法吗?:

foreach( $ourArray as $key => $value){
    if(strlen($value) == 1){ unset($ourArray[$key]); }
}

1 个答案:

答案 0 :(得分:10)

您可以使用array_filter实现这一目标,

$arr = [
  'test',
  '1',
  'g',
  'test-two'
];

var_dump(array_filter($arr, function ($v) {
  return strlen($v) > 1;
}));

如果您想确保空格被占用,请在使用trim之前在值上使用strlen

注意::密钥结构将被破坏,因此您可以使用array_values重新组织它们。

实时示例

Repl-array_filter没有array_values

Repl-array_filter在返回的array_values数组上使用array_filter