从php数组获取最小值取决于列值

时间:2017-11-30 17:38:21

标签: php arrays sorting min

我正在尝试获取二维数组的最小值,其中另一列值被分组。

array(3) {
  [0]=>
  array(3) {
    ["cid"]=>
    int(53)
    ["cpr"]=>
    int(243)
    ["cty"]=>
    string(1) "1"
  }
  [1]=>
  array(3) {
    ["cid"]=>
    int(55)
    ["cpr"]=>
    float(270)
    ["cty"]=>
    string(1) "1"
  }
  [2]=>
  array(3) {
    ["cid"]=>
    int(54)
    ["cpr"]=>
    float(367.65)
    ["cty"]=>
    string(1) "2"
  }
}

我希望例如获取所有cty=1然后cty=2 ....

的分数

3 个答案:

答案 0 :(得分:0)

尝试使用输入数组测试此代码

$arr = array(array(
    "cid"=>'',
    "cpr"=>'',
    "cty"=>"1"
  ),
  array(
    "cid"=>'',
    "cpr"=>'',
    "cty"=>"1"
  ),
  array(
    "cid"=>'',
    "cpr"=>367.65,
    "cty"=> "2"
  ));
echo "<pre>";
print_r($arr[array_search(min(array_column($arr, 'cty')),array_column($arr, 'cty'))]);

答案 1 :(得分:0)

抱歉,要明确我希望来自具有相同cty的单元格的最小cpr。 我需要例如获取cty = 1的所有记录的min cpr,然后使用cty = 2 ....

答案 2 :(得分:-1)

您可以使用PHP's uasort

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/black"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Boulevard Brewing Company"
        android:layout_centerHorizontal="true"
        android:textSize="24sp"
        android:padding="8dp"
        android:id="@+id/text_view"
        android:textColor="@android:color/white"
        />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="150dp"
        android:layout_below="@id/text_view"
        android:id="@+id/logo_view"
        android:background="@android:color/white">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:src="@drawable/single_wide_ipa" />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:src="@drawable/bully_porter" />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:src="@drawable/american_kolsch" />
    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Beer List"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/logo_view"
        android:textSize="24sp"
        android:id="@+id/beer_list"
        android:textColor="@android:color/white"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/beer_list"
        android:orientation="vertical"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="80 - Acre Hoppy Wheat Beer"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="American Kolsch"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Berliner Wiesse(seasonal)"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bob's 47 Oktoberfest(seasonal)"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bourbon Barrel Quad"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bully Porter"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bundle Up(limited run)"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cabernet Cask Imperial Stout(limited run)"
            android:textSize="16sp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Changeling(limited run)"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp"
            android:text="City Market Cider(seasonal)"
            android:textColor="@android:color/white" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Collaboration NO.7(limited run)"
            android:textSize="16sp"
            android:textColor="@android:color/white"
            />



    </LinearLayout>

</RelativeLayout>

function cmp($a, $b) { $a = intval($a['cty']); $b = intval($b['cty']); if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } uasort($array, 'cmp'); echo $array[0]['cty']; 作为您的数组