在数组中取消

时间:2013-06-29 01:49:05

标签: php arrays sorting

美好的一天。

我想从$ arr获得3个键,其中值$ arN [0]将超过其他...

代码:

$ar1=array(201,281);
$ar2=array(1252760,1359724);
$ar3=array(452760,34349724);
$ar4=array(1260,134344);
$ar5=array(232750,1359724);
$ar6=array(60,1439724);

$arr[]=array(6299927 => $ar1);
$arr[]=array(1252760 => $ar2);
$arr[]=array(3432444 => $ar3);
$arr[]=array(3435543 => $ar4);
$arr[]=array(7645466 => $ar5);
$arr[]=array(4574534 => $ar6);

下一个函数排序数组$ a降序:

function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? 1 : -1;
}

$a = array(3, 2, 5, 6, 1);

usort($, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
outpoot: 0:6 1:5 2:4 3:2 4:1

但是如何为我的例子(对于我的大数组)更改此函数?

请告诉我怎么做?

写得怎么样?

3 个答案:

答案 0 :(得分:0)

非常混乱,但我认为你正在寻找这样的东西。它将为您提供第一个项目大于下一个数组中第一个项目的数组的索引。

foreach($arr as $key => $array) {
    if($array[0] > $arr[$key+1][0]) {
       echo $key;
    }
}

答案 1 :(得分:0)

$dates = array();
foreach ($arr as $key => $row) {
    $subkeys = array_keys($row); // Elements are one-element associative arrays
    $dates[$key]  = $row[$subkeys[0]][0]; // Get the element, then get its [0] sub-element

}
array_multisort($dates, SORT_DESC, $arr);
print_r($arr);

答案 2 :(得分:0)

$ans_array= array();

            // for shuffle array without repeat
            for($q=0;$q<count($arr);$q++)
            {
                $n = rand(0,count($arr));
                if($ans_array[$n] == NULL || $ans_array[$n] == '')
                {   
                     $ans_array[$n] = $arr[$q];
                }
                else
                {     if($q==0) $q=0;
                      else $q = $q-1;
                }
            }