我有一个数组,其中包含不同长度的字符串元素。我需要将这个数组拆分为几个数组,每个数组只包含一个特定长度的字符串。
示例:
$allstrings = ('hello', 'world', 'stackoverflow');
我需要:
$length4 = ('hello', 'world');
$length12 = ('stackoverflow');
非常感谢你的帮助!
除了"hello"answers"world"是5,"stackoverflow"是13之外,您可以foreach,并使用strlen($str)
$allstrings = array('hello', 'world', 'stackoverflow');
我建议使用多维数组:
$array = array();
foreach($allstrings as $str) {
$array[strlen($str)][] = $str;
}
在这个特定的示例中,您希望创建包含匹配特定长度的字符串的数组,并使用以下命名约定将这些数组分配给变量:$lengthN
,其中N是字符串长度减去1。
以下是使用可变变量的方法:
foreach($allstrings as $string) {
// Remove one as per your spec
$len = strlen($string) - 1;
// Set temp var name
$var_name = 'length' . $len;
// Initialize variable variable
if(!isset(${$var_name}))
${$var_name} = array();
// Add variable variable's new array entry
${$var_name}[] = $string;
}
print_r($length4);
print_r($length12);
输出:
Array
(
[0] => hello
[1] => world
)
Array
(
[0] => stackoverflow
)
尽管这样会产生所需的结果,但您应该考虑这样一个事实,即创建任意变量名不是一个好主意。将它们包含在数组中是一种结构化的解决方案,它允许您在不知道它们用什么表示的情况下访问它们。在这种情况下,您需要知道使用$length4
或$length12
。值得思考。