在一个数组中查找数据以构建另一个数组

时间:2016-09-04 19:59:19

标签: php arrays

我有一个这样的数组......

$interests = ['f13d6415ed' => 'Mailing', 'a6e5730911' => 'Friend-Family', '998f2252f5' => 'Friend-Patron', '6873081334' => 'Adult', '89c4c64d51' => 'Non-Acting', 'ea325784ac' => 'Life', '8ffdecd43d' => 'Youth Theatre', '6752d0543e' => 'Young Person',];

...我需要最终构建一个这样的数组(用于api调用)......

'interests' => ['f13d6415ed'=>false, 'a6e5730911'=>false, '998f2252f5'=>false, '6873081334'=>true, '89c4c64d51'=>false, 'ea325784ac'=>false, '8ffdecd43d'=>false, '6752d0543e'=>false ],

所以我可以对第一个数组(给定文本术语)执行array_search()并获取所需的密钥。然后我需要构建第二个数组,其中给定键的数据(只有一个)是'true'而其他所有的数据都是'false'。第二个数组是api调用的参数的一部分(Mailchimp)。 我可以看到一些方法来做到这一点,但我不是一个PHP专家,他们都显得非常凌乱。有什么建议吗? 感谢

1 个答案:

答案 0 :(得分:1)

使用array_fill_keysarray_keys函数的解决方案:

$interests = ['f13d6415ed' => 'Mailing', 'a6e5730911' => 'Friend-Family', '998f2252f5' => 'Friend-Patron', '6873081334' => 'Adult', '89c4c64d51' => 'Non-Acting', 'ea325784ac' => 'Life', '8ffdecd43d' => 'Youth Theatre', '6752d0543e' => 'Young Person',];

$new_arr = [];
$keyTrue = '6873081334';
$new_arr['interests'] = array_fill_keys(array_keys($interests), false);
$new_arr['interests'][$keyTrue] = true;

var_dump($new_arr);