当前位置:K88软件开发文章中心网站服务器框架Yii 2.0 → 文章内容

Array 助手(ArrayHelper)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 15:30:08

对键名做编码。 编码将默认使用应用程序的字符集,你可以通过第三个参数指定该字符集。合并数组 /** * 将两个或者多个数组递归式的合并为一个数组。 * 如果每个数组有一个元素的键名相同, * 那么后面元素的将覆盖前面的元素(不同于 array_merge_recursive)。 * 如果两个数组都有相同键名的数组元素(译者注:嵌套数组) * 则将引发递归合并。 * 对数值型键名的元素,后面数组中的这些元素会被追加到前面数组中。 * @param array $a 被合并的数组 * @param array $b 合并的数组,你可以在第三、第四个 * 参数中指定另外的合并数组,等等 * @return 合并的结果数组 (原始数组不会被改变) */ public static function merge($a, $b)对象转换为数组你经常要将一个对象或者对象的数组转换成一个数组,常见的情形是,为了通过REST API提供数据数组(或其他使用方式), 将AR模型(活动记录模型)转换成数组。如下代码可完成这个工作:$posts = Post::find()->limit(10)->all();$data = ArrayHelper::toArray($posts, [ 'app\models\Post' => [ 'id', 'title', // the key name in array result => property name 'createTime' => 'created_at', // the key name in array result => anonymous function 'length' => function ($post) { return strlen($post->content); }, ],]);第一个参数包含我们想要转换的数据,在本例中,我们要转换一个叫?Post?的 AR 模型。第二个参数是每个类的转换映射表,我们在此设置了一个Post?模型的映射。 每个映射数组包含一组的映射,每个映射可以是:一个要包含的照原样的字段名(和类中属性的名称一致);一个由你可随意取名的键名和你想从中取值的模型列名组成的键值对;一个由你可随意取名的键名和有返回值的回调函数组成的键值对;这上面的转换结果将会是:[ 'id' => 123, 'title' => 'test', 'createTime' => '2013-01-01 12:00AM', 'length' => 301,]也可以在一个特定的类中实现yii\base\Arrayable接口, 从而为其对象提供默认的转换成数组的方法。

上一页  [1] [2] 


Array 助手(ArrayHelper)