php - 计算数组交集,保留标题顺序?

标签 php arrays

<分区>

我有两个数组:

<?php
$row = array(
  'useless' => 42,
  'useful' => 'orange',
  'useful_also' => 'apples',
  'useless_too' => 'banana',
  'useful_too' => 'apples');
$header = array('useful_too', 'useful', 'useful_also');

如何得到下面的数组?

   <?php
   $result = array(
      'useful_too' => 'apples',
      'useful'     => 'orange',
      'useful_also' => 'apples'
   );

我正在使用 array_intersect_key,但它不会使用第二个 数组顺序,但是第一个。我想我会使用一个简单的 foreach 时刻,像这样:

<?php
$result = array();
foreach ($header as $key) {
    $result[$key] = $row[$key];
}

但我想知道是否有没有 foreach 的解决方案。

最佳答案

试试这个

$row = array(
      'useless' => 42,
      'useful' => 'orange',
      'useful_also' => 'apples',
      'useless_too' => 'banana',
      'useful_too' => 'apples');
$header = array('useful_too', 'useful', 'useful_also');

$list  = array_flip($header);
$arr   = array_intersect_key(array_replace($list, $row), $list);
print_r($arr);

参见 DEMO

关于php - 计算数组交集,保留标题顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20855645/

相关文章:

PHP 脚本在 ö/é 上崩溃

javascript - JS/JQUERY 不更新字符串数组值

java - 对第二个单词进行排序

java - 如何使用 Java 解析 JSON 二维数组

c++ - 成员函数指针的静态成员数组

php - SQL Select 使用同一表中的不同参数

php - Mac os Sierra php-imap cli 工作缓慢

php - 使用 volley 将 BLOB 图像从 mysql 显示到 android

arrays - 如何在 HiveQL 中将字符串转换为结构数组

php - Laravel 和批量分配保护