You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP版本低于7时,如何从多维数组提取指定键值到新数组?

拆分多维数组为两个指定结构的数组

没问题,针对你的需求,我给你写个兼容性拉满的实现方案——毕竟你说PHP版本不是7,咱们用所有版本都支持的写法就行:

首先先把你的原始数组定义出来:

$originalArray = array( 
    '0' => array('id'=>1,'name'=>'abc','class'=>'xyz'), 
    '1' => array('id'=>2,'name'=>'abc1','class'=>'xyz1'), 
    '2' => array('id'=>3,'name'=>'abc','class'=>'xyz2'), 
);

方法一:foreach循环(全版本兼容)

这种写法不管是PHP5还是更低版本都能正常运行,逻辑也直白易懂:

$array1 = array();
$array2 = array();

foreach ($originalArray as $item) {
    // 组装数组1:保留id和name字段
    $array1[] = array(
        'id' => $item['id'],
        'name' => $item['name']
    );
    
    // 组装数组2:保留id和class字段
    $array2[] = array(
        'id' => $item['id'],
        'class' => $item['class']
    );
}

执行完之后,$array1就是你要的第一个数组:

array( 
    '0' => array('id'=>1,'name'=>'abc'), 
    '1' => array('id'=>2,'name'=>'abc1'), 
    '2' => array('id'=>3,'name'=>'abc'), 
);

$array2就是第二个目标数组:

array( 
    '0' => array('id'=>1,'class'=>'xyz'), 
    '1' => array('id'=>2,'class'=>'xyz1'), 
    '2' => array('id'=>3,'class'=>'xyz2'), 
);

方法二:array_map函数(PHP5.3+兼容)

如果你的PHP版本在5.3及以上,也可以用array_map简化代码,写法更简洁:

$array1 = array_map(function($item) {
    return array('id' => $item['id'], 'name' => $item['name']);
}, $originalArray);

$array2 = array_map(function($item) {
    return array('id' => $item['id'], 'class' => $item['class']);
}, $originalArray);

要是你的版本比5.3还低,那还是用foreach更稳妥哦~

内容的提问来源于stack exchange,提问作者Imran Qamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:24:32