1.PHP array_combine() 函数,通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组元素为键值
实例
通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组元素为键值:
<?php
$fname=array("Peter","Ben","Joe");
$age=array("35","37","43");
$c=array_combine($fname,$age);
print_r($c);
?>
结果
Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
2.PHP array_column() 函数 ,返回输入数组中某个单一列的值。
实例
从记录集中取出 last_name 列:
<?php
// 可能从数据库中返回数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 4767,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3809,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
$last_names = array_column($a, 'last_name');
print_r($last_names);
?>
输出:
Array
(
[0] => Griffin
[1] => Smith
[2] => Doe
)
3.array_values() 函数返回包含数组中所有的值的数组。
提示:被返回的数组将使用数值键,从 0 开始且以 1 递增。
实例
返回数组中所有的值(不保留键名):
<?php
$a=array("Name"=>"Peter","Age"=>"41","Country"=>"USA");
print_r(array_values($a));
?>
结果
Array ( [0] => Peter [1] => 41 [2] => USA )
4.unset() 函数用于销毁给定的变量。
<?php
// 销毁单个变量
unset ($foo);
// 销毁单个数组元素
unset ($bar['quux']);
// 销毁一个以上的变量
unset($foo1, $foo2, $foo3);
?>
如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
实例
<?php
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
输出结果为:
bar
5.laravel示例,几个函数组合使用
/**
* 处理商品列表(抢购、限时折扣、商品图片)
*/
private function _goods_list_extend($goods_list)
{
//获取商品列表编号数组
$goodsid_array = array();
foreach ($goods_list as $key => $value) {
$goodsid_array[] = $value['goods_id'];
}
$sole_array = Model('p_sole')->getSoleGoodsList(array('goods_id' => array('in', $goodsid_array)));
$sole_array = array_under_reset($sole_array, 'goods_id');
$goods_list = dispatchNow(new \App\Jobs\Goods\CollectionGetPriceData($goods_list, MemberStore::getMember()));
$goods_list = dispatchNow(new \App\Jobs\Goods\GoodsFictitiousSale($goods_list));
$storeArr = \App\Models\Store::whereIn('store_id', array_unique(array_column($goods_list, 'store_id')))
->select(['store_id', 'store_name', 'is_show_auto_vr_order', 'is_auto_vr_order','gift_amount','is_show_b2c'])
->get()
->toArray();
//组合
$storeArr = array_combine(array_column($storeArr, 'store_id'), $storeArr);
foreach ($goods_list as $key => $value) {
//格式化商品销量
// if($value['goods_salenum']){
// $goods_list[$key]['goods_salenum'] = format_goods_salenum($value['goods_salenum']);
// }
//店铺is_show_b2c关闭 不显示该店铺的商品
if ($storeArr[$value['store_id']]['is_show_b2c'] == 0) {
//销毁
unset($goods_list[$key]);
} else {
$goods_list[$key]['sole_flag'] = false;
$goods_list[$key]['group_flag'] = false;
$goods_list[$key]['xianshi_flag'] = false;
if (!empty($sole_array[$value['goods_id']])) {
$goods_list[$key]['goods_price'] = $sole_array[$value['goods_id']]['sole_price'];
$goods_list[$key]['sole_flag'] = true;
} else {
$goods_list[$key]['goods_price'] = $value['goods_promotion_price'];
switch ($value['goods_promotion_type']) {
case 1:
$goods_list[$key]['group_flag'] = true;
break;
case 2:
$goods_list[$key]['xianshi_flag'] = true;
break;
}
}
//商品图片url
$goods_list[$key]['goods_image_url'] = cthumb($value['goods_image'], 360, $value['store_id']);
$goods_list[$key]['goods_price'] = $value['sold_price'];
if (isset($storeArr[$value['store_id']])) {
$storeInfo = $storeArr[$value['store_id']];
$goods_list[$key]['is_show_extend_info'] = !($value['is_virtual'] && $storeInfo['is_show_auto_vr_order'] && $storeInfo['is_auto_vr_order']);
$goods_list[$key]['gift_amount']=$storeInfo['gift_amount']; //金豆赠送比例
} else {
$goods_list[$key]['is_show_extend_info'] = true;
}
$goods_list[$key]['store_name'] = $storeArr[$value['store_id']]['store_name'] ?? $value['store_name'];
unset($goods_list[$key]['goods_promotion_type']);
unset($goods_list[$key]['goods_promotion_price']);
unset($goods_list[$key]['goods_commonid']);
unset($goods_list[$key]['nc_distinct']);
}
}
//重新生成
$goods_list= array_values($goods_list);
return $goods_list;
}