为了账号安全,请及时绑定邮箱和手机立即绑定

在php中获取数组的子数组

在php中获取数组的子数组

PHP
慕莱坞森 2021-11-26 14:52:23
我有一个数组 ($skus),看起来像这样;$skus[0] = "hello";$skus[1] = "world";$skus[2] = "sky";$skus[3] = "is";$skus[4] = "blue";我的问题是,如何根据另一个数组获取该数组的子集,即子集数组是;$words = array(0,2,4);这将返回给我一个数组["hello", "sky", "blue"],即$return[0] = "hello";$return[1] = "sky";$return[2] = "blue";
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

你可以用array_intersect_key()与array_flip():


<?

$skus[0] = "hello";

$skus[1] = "world";

$skus[2] = "sky";

$skus[3] = "is";

$skus[4] = "blue";


$words = array(0,2,4);


$result = array_intersect_key($skus, array_flip($words)); 

$setOrder = array_values($result); // to re order

echo "<pre>";

print_r($setOrder);

?>

结果:


Array

(

    [0] => hello

    [1] => sky

    [2] => blue

)

您还可以使用array_values()重置密钥顺序。


查看完整回答
反对 回复 2021-11-26
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您可以使用for循环并检查索引是否$words存在于$skus:


$skus = [


    "Hello",

    "world",

    "sky",

    "is",

    "blue",

];


$words = array(0,2,4);

$result = [];

for ($i = 0; $i < count($words); $i++) {

    if (isset($skus[$words[$i]])) {

        $result[$i] = $skus[$words[$i]];

    }

}


print_r($result);

结果


Array

(

    [0] => Hello

    [1] => sky

    [2] => blue

)


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 279 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信