php - 只返回它的键在另一个数组中的数组值

标签 php arrays

<分区>

我有两个数组,如下所示:

$fields = array('id', 'name', 'city', 'birthday', 'money');

$values = array('id' => 10,    
    'name' => 'Jonnas',   
    'anotherField' => 'test',
    'field2' => 'aaa',
    'city' => 'Marau', 
    'field3' => 'bbb',
    'birthday' => '0000-00-00',
    'money' => 10.95
);

是否有一个 PHP 内置函数可以检索仅填充了 $fields 数组 (id, name, city, birthday, money) 中指定的键的数组

我期望的返回是这样的:

$values2 = array(
    'id' => 10,
    'name' => 'Jonnas',
    'city' => 'Marau',
    'birthday' => '0000-00-00',
    'money' => 10.95
);

P.S.:我只是在寻找内置函数。

最佳答案

$values2 = array_intersect_key($values, array_flip($fields));

如果必须始终按 $fields 的顺序返回键,请改用简单的 foreach 循环:

$values2 = array();
foreach ($fields as $field) {
    $values2[$field] = $values[$field];
}

关于php - 只返回它的键在另一个数组中的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15521888/

相关文章:

php - 对数组进行排序,其中包含一些按天排序的日期,例如 php 中的星期日、星期一等

arrays - 使用 java 流更新字符串数组

Java字符串分割返回长度0

php - 使用 php 将 Coinbase API V2 中的数据插入 MySQL 数据库

php - Symfony2 表单类型实体无预加载

php - file_get_contents 在 HTTP 下工作但在 HTTPS 下不工作

javascript - 在 JavaScript 中创建数组的更好方法?

php - 语法问题阻止 mySQL 结果显示在 HTML 表中

php - 除了 fclose() 和 fopen() 之外,如何在 PHP 中重新倒回 () 一个 http 流文件?

php - #1062 - key '81057' 的重复条目 'PRIMARY'