私は2つの配列を持っています:
$array1 = array(1,2,3);
$array2 = array(dog, cat, fox);
最初の配列をキーに、2 番目の配列を値に使用して、2 つの配列を組み合わせるにはどうすればよいですか?
$array3 = array(1 => dog, 2 => cat, 4 => fox);
PHP には、array_combine(); があります。しかし、jQuery でこれを行う良い方法が見つからないようです。
私は2つの配列を持っています:
$array1 = array(1,2,3);
$array2 = array(dog, cat, fox);
最初の配列をキーに、2 番目の配列を値に使用して、2 つの配列を組み合わせるにはどうすればよいですか?
$array3 = array(1 => dog, 2 => cat, 4 => fox);
PHP には、array_combine(); があります。しかし、jQuery でこれを行う良い方法が見つからないようです。
jQuery では、ループを使用します。
var array3 = {};
$.each(array1, function(i) {
array3[array1[i]] = array2[i];
});
単純なfor
ループでこれをうまく行う必要があります。
var arr1 = [3, 5, 7], // keys, integers or "integer strings" e.g. "5"
arr2 = ['a', 'b', 'c']; // values
var arr3 = [], i;
for (i = 0; i < arr1.length; ++i) {
arr3[arr1[i]] = arr2[i];
}
arr3; // [undefined × 3, "a", undefined × 1, "b", undefined × 1, "c"]
編集:整数以外 ( 1
, 2
, .. または'1'
, .. ではないなど'2'
) をキーとして使用している場合、JavaScript で作成するのはArrayではなく、Object myObj = {}
です。JavaScript ではObjectから継承するため、配列はこのようなキーの追加について不平を言うことはありませんが、悪い習慣と見なされ、デバッグが困難になります。
var array3 = {};
for (var i = 0; i < array1.length; i++) {
array3[array1[i]] = array2[i];
}
js では、php とは異なり、ハッシュと配列は 2 つの異なるものです。
したがって、最終結果として配列ではなくオブジェクトが必要であると想定しています。
var $array1 = array(1,2,3);
var $array2 = array(dog, cat, fox);
var obj = {};
for(var i=0,len=$array1.length; i < len ;i++) {
obj[$array1[i]] = $array2[i];
}
また、js の array_combine を見てください。
php 関数に相当する js は他にもたくさんあります。