我正在使用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 />';
谁能告诉我哪里出错了?感谢任何帮助!
答案 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);