比较只有1个数组的数组值

时间:2016-01-13 16:02:44

标签: php arrays

这是我的阵列:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => West
                    [1] => 4
                )

            [1] => Array
                (
                    [0] => South west
                    [1] => 20
                )

        )

)

我想要实现的是能够比较$array[0][0][1]$array[0][1][1]。因此,无论哪个较小,我都会获得价值。所以在这种情况下,我知道4较小,所以我先得西,然后是西南。它应该是动态的,因为我们可以获得超过2个。

2 个答案:

答案 0 :(得分:1)

这是一个你可以使用的简单例子:

$arr = array(
array("name"=>"Bob","age"=>8,"colour"=>"red"),
array("name"=>"Greg","age"=>12,"colour"=>"blue"),
array("name"=>"Andy","age"=>5,"colour"=>"purple"));

$sortArray = array();

foreach($arr as $val){
    foreach($val as $key=>$value){
        if(!isset($sortArray[$key])){
            $sortArray[$key] = array();
        }
        $sortArray[$key][] = $value;
    }
}

$orderby = "age"; //change this to whatever key you want from the array

array_multisort($sortArray[$orderby],SORT_ASC,$arr);

print_r($arr); 

答案 1 :(得分:0)

假设数组结构的深度保持不变,而您只想要最低的,则可以使用简单的foreach。

function findLowestName($array) {
    $lowest = 0; // variable to hold the index of the lowest entry.
    // go through every entry in the first array member
    foreach($array[0] as $key => $value) {
        // if this entry is lower than the 'current' lowest, mark this as the new lowest
        if($value[1] < $array[0][$lowest]) {
            $lowest = $key;
        }
    }
    return $array[0][$lowest][0];
}

作为一个函数构建,所以你可以包含它,并调用函数,将数组作为参数传递给它。