数组函数data_*
系列
data_fill
填充
用于多维数组或对象设置缺省值;
多级键名可以用.
连接;
可以使用*
作为通配符;
$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2'],
],
];
data_fill($data, 'products.*.price', 200);
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 200],
],
]
*/
data_get
检索
与data_fill
相反,用于从多维数组或对象中检索值;
多级键名可以用.
连接;
可以使用*
作为通配符;
如果找不到指定的键,可设置默认返回值;
$discount = data_get($data, 'products.desk.discount', 0);
data_set
设置
与data_fill
不同在于,data_set
默认会覆盖原有值;
可以设置第四个参数为false
,用于取消覆盖;
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200, false);
// ['products' => ['desk' => ['price' => 100]]]