PHP中调用array_values()无法提取数组全部值、移除原有键怎么办
实现方案
array_values()的作用仅为将数组原有键重置为0开头的连续数字索引,无法满足自定义统一键名的需求。另外PHP原生一维数组不支持重复键名,重复键会直接覆盖此前的赋值,因此你需要的结构应为二维数组,对应实现代码如下:
场景1:将原数组每个值都包装为键名统一的子数组
如果你的统一键名为custom_key,可参考如下代码:
// 替换为你自己的原数组变量 $original_arr = [/* 你的原始数组内容 */]; $unified_key = 'custom_key'; // 实现代码 $processed_arr = []; foreach (array_values($original_arr) as $value) { $processed_arr[] = [ $unified_key => $value ]; }
也可以用array_map简化写法:
$unified_key = 'custom_key'; $processed_arr = array_map(fn($val) => [$unified_key => $val], array_values($original_arr));
场景2:将所有原数组值放到同一个键下的索引数组中
如果你是要把所有值都汇总到同一个键名下,可直接用如下写法:
$processed_arr = [ 'custom_key' => array_values($original_arr) ];
内容的提问来源于stack exchange,提问作者menem farag
相关产品推荐
相关产品推荐

