php 適用函數

來源:互聯網
上載者:User
php 實用函數

第一次隨筆,寫一些自己工作當中比較實用的函數吧。

數組函數:

1 array_column --返回數組當中指定的一列

  用法一:返回數組當中指定的一列

  應用情境:取出全班同學的id,去其他表查詢這些同學的其他資訊

  好處:減少查詢資料庫的次數(通過id一次性查出所有資訊)

  列子:

    

    $records = array(
    array(
    'id' => 2135,
    'first_name' => 'John',
     'last_name' => 'Doe',
     ),
     array(
     'id' => 3245,
     'first_name' => 'Sally',
     'last_name' => 'Smith',
     )
    );

    $first_names = array_column($records, 'id');
    print_r($first_names);

    //結果

    array('2135','3245');

    ?>

  用法二:用二維數組當中的id作為數組的key

  應用情境:通過array['id']取出資料

  好處:用array_column代替foreach將二維數組當中的id作為數組的key,代碼簡潔,調用系統函數提高效率

  列子:

    

    $records = array(
    array(
    'id' => 2135,
    'first_name' => 'John',
     'last_name' => 'Doe',
     ),
     array(
     'id' => 3245,
     'first_name' => 'Sally',
     'last_name' => 'Smith',
     )
    );

    //使用foreach

    $records_key = array();

    foreach($records as $k => $v){

      $records_key[$v['id']] = $v;

    }

    print_r($first_names);
    //調用array_column
    $records_key = array_column($records, NULL,'id');
    print_r($first_names);

    ?>

    //結果

    Array(

      [2135] => Array(
        [id] => 2135
        [first_name] => John
        [last_name] => Doe
      )

      [3245] => Array(
        [id] => 3245
        [first_name] => Sally
        [last_name] => Smith
      )

    )

    

2 array_multisort --對多個數組或多維陣列排序

  用法一:多維陣列排序

  應用情境:將資料根據 價格 降序排序,根據 銷量 升序排序

  好處:

  列子:

          $data[] = array('price' => 67, 'sale_num' => 2);
      $data[] = array('price' => 86, 'sale_num' => 1);
      $data[] = array('price' => 85, 'sale_num' => 6);
      $data[] = array('price' => 98, 'sale_num' => 2);
      $data[] = array('price' => 86, 'sale_num' => 6);
      $data[] = array('price' => 67, 'sale_num' => 7);

      // 取得列的列表

      $price= array_column($data,'price');

      $sale_num= array_column($data,'sale_num');

      // 把 $data 做為最後一個參數,以通用鍵排序

      array_multisort($price, SORT_DESC, $sale_num, SORT_ASC, $data);
    ?>

    //結果 

     price | sale_num    -------+--------        98 |       2        86 |       1        86 |       6        85 |       6        67 |       2        67 |       7

  未完待續!

1樓曹亮
函數雖好,,但不具有普遍性,,不過平時用到的可以直接類比此函數寫一個。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.