如何从数组中提取指定项目?
通过指定键名来生成一个新的数组,下面是一种实现方式,通过array_filer过滤:
$logOrder = array_filter($order, function($key){
$logKey = ['uid','vmId','phone'];
if(in_array($key,$logKey)) return true;
}, ARRAY_FILTER_USE_KEY);
$remark = json_encode($logOrder, JSON_UNESCAPED_UNICODE);
$iceqrLog->remark = $remark;
注:array_filter 中 ARRAY_FILTER_USE_KEY 是传键名做唯一参数给 callback,
ARRAY_FILTER_USE_BOTH 是 key 和 val 都传递。
PHP7.4 之后可以使用箭头函数:
$arr = array_filter($numbers, fn($n) => $n > 10);
$arr = array_filter($entries, fn($key) => !in_array($key, ['key1', 'key5']), ARRAY_FILTER_USE_KEY);
官方说明:
https://www.php.net/manual/en/function.array-filter.php
还是要多看官方文档呀!
成功没有所谓的捷径,但也要找对方法,不能死脑筋。
网友评论