我有一个包含不同长度的字符串元素的数组。我需要将这个数组拆分成几个数组,每个数组包含一个特定长度的字符串。
示例:
$allstrings = ('hello', 'world', 'stackoverflow');
我需要:
$length4 = ('hello', 'world');
$length12 = ('stackoverflow');
非常感谢你的帮助!
答案 0 :(得分:2)
除了事实"你好"和#34;世界"是5," stackoverflow"是13,你可以预告,并使用strlen($str)
$allstrings = array('hello', 'world', 'stackoverflow');
我建议使用多维数组:
$array = array();
foreach($allstrings as $str) {
$array[strlen($str)][] = $str;
}
答案 1 :(得分:1)
在此特定的示例中,您希望创建包含与特定长度匹配的字符串的数组,并使用以下命名约定将这些数组分配给变量:$lengthN
其中N是字符串长度减一。
以下是使用variable variables:
的方法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
。值得深思。