1. 程式人生 > 其它 >陣列助手類 ArrayHelper

陣列助手類 ArrayHelper

技術標籤:小識彙總phpyii陣列

用原生PHP從一個物件、陣列、或者包含這兩者的一個複雜資料結構中獲取資料是非常繁瑣的。 你首先得使用 isset檢查 key 是否存在, 然後如果存在你就獲取它,如果不存在, 則提供一個預設返回值。Yii 提供了一個非常方便的方法來做這件事ArrayHelper

#use yii\helpers\ArrayHelper;
$token='test2'
$user = User::find()->where(['auth_key' => $token])->asArray()->one();
var_dump($user);

在這裡插入圖片描述

原生寫法

$value = isset($user['id']) ? $user['id']: null;

ArrayHelper

方法的第一個引數是我們從哪裡獲取值。第二個引數指定了如何獲取資料, 它可以是下述幾種型別中的一個:
1、陣列鍵名或者欲從中取值的物件的屬性名稱;
2、以點號分割的陣列鍵名或者物件屬性名稱組成的字串,上例中使用的引數型別就是該型別;
3、返回一個值的回撥函式。

#獲取值
$value = ArrayHelper::getValue($user, 'id');
var_dump($value);//string '255'
#獲取值,無則輸出預設值預設ID,不設定第三個引數,預設值為null
$value = ArrayHelper::getValue($user, 'id','預設ID'); var_dump($value);//string '255' (length=3) //當$token='無資料時'; var_dump($value);//string '預設ID' (length=8) #回撥函式的寫法 $value = ArrayHelper::getValue($user, function ($user,$defaultValue){ echo $user['mobile']. '-' . $user['username']; //string '17721318888-patti' (length=17)
});