PHP:从逗号分隔的字符串中获取最小数字

时间:2015-10-22 10:26:00

标签: php arrays

我正在使用min()从我拥有的字符串中获取最小数字 - 我已将字符串转换为min()数组,但它不输出任何内容。

$empty_room_id .= '2, 3, 4, ';
$empty_room_id_array = explode(", ",$empty_room_id);

echo 'Lowest number: ' . min($empty_room_id_array) . '<br />';
echo 'All numbers: ' . $empty_room_id . '<br />';

谁能告诉我哪里出错了?感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

在4之后你有空的空间:那是最低的值。在爆炸之前,你最好从你的弦中取出所有空的空间。所以你想要这个:

$empty_room_id .= explode(", ",str_replace(' ','','2, 3, 4'));

如果你自动获得该字符串并且无法删除最后一个令人讨厌的字符串,那么,&#39;和无用的空间,你可以这样做:

$empty_room_id = preg_replace(array('/ /','/,$/'),array('',''), $empty_room_id);
$empty_room_id_array = explode(",",$empty_room_id);

或者,因为我们已经搞乱了正则表达式:

preg_match('/\d+?/', $empty_room_id, $empty_room_id_array);

答案 1 :(得分:0)

问题是你的数组包含一个空字符串(最后一个元素),如果删除这些实例(并且只保留数字),你将得到预期的行为。有多种方法,但这是一个快速的方法:

echo 'Lowest number: ' . min(array_filter($empty_room_id_array)) . '<br />';

请注意,这也将删除零,因此可能不是最佳的,具体取决于您的编号范围

答案 2 :(得分:0)

我会这样做:

// Create string
$string = '2, 3, 4, 5, 6';

// Explode string to convert it to an array
$workArray = explode(',', $string);

// Sort array by numeric values
$sorted = sort($workArray);

// Get lowest number
$lowestValue = current($sorted);

修改

你也可以这样做:

$lowest = min($workArray);