Yii2.0 ArrayHelper::index() 用法
阿新 • • 發佈:2018-11-03
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; }