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);
}