1. 程式人生 > >Yii2.0 ArrayHelper::index() 用法

Yii2.0 ArrayHelper::index() 用法

ndex()是根據指定的鍵將陣列索引。

該陣列應該是一個多維陣列,或者是一個物件陣列。

指定的鍵可以是一個子陣列的鍵名,或者是一個物件的屬性名,或者是一個匿名行數名。

如果一個鍵值是空的,相應的陣列元素將被丟棄,而不會在結果中輸出。

舉個例子:

有如下陣列


$array = [
          ['id' => 'key1', 'data' => '123456'],
          ['id' => 'key2', 'data' => '654321'],
      ];
我們轉化id為鍵的陣列

$result = ArrayHelper::index($array, 'id');
列印$result的結果如下


[
    'key1 ' => ['id' => 'key1 ', 'data' => 'value1'],
    'key2 ' => ['id' => 'key2 ', 'data' => 'value2'],
]
使用匿名函式


$result = ArrayHelper::index($array, function ($element) {
          return $element['id'];
     });
原始碼:


    /**
     * @param array $array the array that needs to be indexed
     * @param string|\Closure $key the column name or anonymous function whose result will be used to index the array
     * @return array the indexed array
     */
    public static function index ($array, $key)
    {
        $result = [];
        foreach ($array as $element) {
            $value = static:: getValue($element, $key);
            $result[$value] = $element;
        }
        return $result;
    }