PHPの配列は非常に柔軟で便利です。私は30以上の配列関数on the PHP.net array referenceページを数えました。それらのうちのいくつかは私の問題を解決することができますが、私は最高の、最もエレガントな方法を探しています。ネストされた配列を交差するときに使用する最適なPHP配列関数は何ですか?
私は2つの配列を持っているが、各テーブルを含む、labor
とcost
と呼ばれる:
labor = array(
0 => array('date' => date, 'labor'=> labor),
1 => array('date' => date, 'labor'=> labor),
...
);
cost = array(
0 => array('date' => date, 'cost'=> cost),
1 => array('date' => date, 'cost'=> cost),
...
);
私の問題は時々日付の数が(つまり、あなたが負担してきた日があると一致していないということですたとえあなたが労働に費やさなかったとしても、労務費はかかりませんでしたが)コストがかかりませんでした。つまり、1つの配列に次の行があり、次の列には、count()
を使用せずにどれがあるかを知る方法がありません。私が興味を持って何
両方の労働力を持っていたとの費用がかかり、私は配列で終わるしたい唯一の日です:私はarray_intersect()
または「uのいずれかを使用して考えた
laborcost = array(
0 => array('date' => date, 'labor'=> labor, 'cost' => cost),
1 => array('date' => date, 'labor'=> labor, 'cost' => cost),
...
)
'機能が完全に混ざり合った。私自身の配列スキャン機能をあきらめて書き込む前に、1行、おそらく2行のコード行で問題を解決するアイデアがあるかどうかを見たいと思っていました。
'array_map()'を試しましたか? –
うん、 'array_map'。私はクラスを作成し、コンストラクタに1つの配列を与えて保存し、次にクラスの別のメソッドを 'array_map'のコールバックとして使用します。これには2番目の配列を渡すことができます。 – halfer
array_mapをまだ見ていない - それを見てみましょう。ありがとう! –