Php 使用密钥ID构建新阵列

Php 使用密钥ID构建新阵列,php,arrays,Php,Arrays,使用$ids中的数字,我想从$nuts中提取数据 例如: $ids = [0,3,5]; // 0 calories, 3 sugar, 5 fat $nuts = [ 'calories' => 'cal', 'protein' => 'pro', 'carbohydrate' => 'car', 'sugar' => 'sug', 'fiber' => 'fib', 'fat' => 'fat', ];

使用
$ids
中的数字,我想从
$nuts
中提取数据

例如:

$ids = [0,3,5]; // 0 calories, 3 sugar, 5 fat

$nuts = [
    'calories' => 'cal',
    'protein' => 'pro',
    'carbohydrate' => 'car',
    'sugar' => 'sug',
    'fiber' => 'fib',
    'fat' => 'fat',
];

$returnData = [
    'calories' => 'cal',
    'sugar' => 'sug',
    'fat' => 'fat',
];
我可以使用
foreach()循环遍历每个
$id
编号
$newNuts = array_values(array_flip($nuts));
foreach($ids as $i)
    $returnData[$newNuts[$i]] = $nuts[$newNuts[$i]];

我做了一些工作并意识到,您不需要
数组翻转
数组值
就可以了

$num_nuts = array_values ($nuts);

for ($z=0; $z<sizeof($ids); $z++) {
 echo $num_nuts[$ids[$z]];            
 }
$num\u nuts=数组值($nuts);
对于($z=0;$z一个简单的

无需创建阵列的副本

$result = array();
foreach ($ids as $i) {
    $result += array_slice($nuts, $i, 1, true);
}