0

私はこの状況にあり$testます:

               $months = Array
                    (
                        [3] => 7.56
                        [7] => 11.94
                        [1] => 6.90
                        [17] => 6.90
                        [6] => 6.90
                        [4] => 19.50
                    )
               $total = Array
                    (
                        [31] => 10
                        [17] => 4
                    )

病気になるような方法でそれらを組み合わせたい$x = array([17] => 6.90)

values基本的に、 from$monthskeysfrom$totalをまとめます$months.key$total.key

何か案は?

ありがとう

4

4 に答える 4

2

array_intersect_keys(doc)を試してみてください

ドキュメントから:

<?php
    $array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
    $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

    var_dump(array_intersect_key($array1, $array2));
?>

出力

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

「array_intersect_key()は、すべての引数に存在するキーを持つarray1のすべてのエントリを含む配列を返します。」

したがって、常に最初の配列の「値」が必要な場合は、これが解決策です。

于 2011-12-14T02:04:01.167 に答える
1
$x = array();
foreach($total as $key => $value)
{
  if (array_key_exists($key, $months))
  {
    $x[$key] = $months[$key];
  }
}
于 2011-12-14T01:43:03.827 に答える
0
foreach ($total as $k => $v) if (isset($months[$k])) $x[$k] = $months[$k];
于 2011-12-14T01:42:49.297 に答える
0

私が間違っていなければ、これは配列マージの仕事かもしれません。

$x = array_merge($months,$total);

http://php.net/manual/en/function.array-merge.php

于 2011-12-14T01:46:31.783 に答える