如何在关联数组中找到最小数字

时间:2012-10-22 00:08:36

标签: php arrays integer associative-array min

这是问题所在:

我有以下数组(来自$wpdb->get_results()):

array(6) {
    [0]=> array(1) {
        [0]=> string(7) "1102006"
    }
    [1]=> array(1) {
        [0]=> string(7) "1102006"
    }
    [2]=> array(1) {
        [0]=> string(7) "8092007"
    }
    [3]=> array(1) {
        [0]=> string(8) "23062012"
    }
    [4]=> array(1) {
        [0]=> string(8) "29072000"
    }
    [5]=> array(1) {
        [0]=> string(8) "30082008"
    }
}

我想在这个数组中找不到10,000的最低整数。在这种情况下,答案将是10,000,因为10,000不在数组中。

由于

1 个答案:

答案 0 :(得分:0)

这是我解释你的问题的方式。

从10000开始,找到第一个不在数据数组中的可用数字。

<?php

$data = array(
    array('1102006'),
    array('1102006'),
    array('8092007'),
    array('23062012'),
    array('29072000'),
    array('30082008')
);

// flatten the array to a single dimension
function flatten(&$v) { $v = $v[0]; }

array_walk($data, 'flatten');

// minimum number
$num = 10000;

// while a value has not been found
while (!isset($value))
{
    // check if the current number is in our data (exclusion list)
    if (array_search($num, $data) === false)
        $value = $num;

    // increment for our next search
    $num++;
}

echo $value;

如果您刚好在该数组中的最小值之后,请在上一个答案中展平数组并使用min

echo min($data);