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

问题描述 投票:4回答:1

所以如果你有一个数组:

$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]); }
}
php arrays filtering
1个回答
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 withoutarray_values

Repl - array_filter在返回的array_values阵列上使用array_filter

© www.soinside.com 2019 - 2024. All rights reserved.