JavaScriptとPHPの配列の個数

JavaScriptでは配列の添字を「100」として値を代入すると要素が101個になります。 (さらに…)

配列からリストを作るサンプル

JavaScriptで配列からHTMLのULを使ったリストを作るユーザー定義関数を作ってみました。
配列を与えるとレベルに応じて入れ子構造になったULリストを文字列で出力します。

function array2ul(a) {
  var t = "";
  var exlevel = 0;
  var level;
  var i, j;
  for (i = 0; i <= a.length; i++) {
    level = i < a.length ? a[i][0] : 0;
    for (j = 0; j < Math.abs(exlevel - level); j++) {
      t += exlevel < level ? "<ul>" : "</ul>";
    }
    t += i < a.length ? "<li>" + a[i][1] + "</li>" : "";
    exlevel = level;
  }
  return t;
}

次のように使います。配列は[レベル,テキスト]という形で与えます。レベルは1から始めます。

var a = [
  [1, "a"],
  [2, "b"],
  [3, "c"],
  [3, "c"],
  [2, "b"],
  [3, "c"],
  [3, "c"],
  [1, "a"],
  [2, "b"],
  [3, "c"],
  [3, "c"],
  [2, "b"],
  [3, "c"],
  [3, "c"]
];
var ul = array2ul(a);

出力結果です。

SimpleXMLElementを使って配列をXMLに変換

PHPで配列をXMLに変換するサンプルです。
SimpleXMLElementを使います。 (さらに…)

PHPの配列関数のまとめ

以前、JavaScriptの配列に関するメソッドについてまとめましたが、同じようにPHPの配列関数についてまとめてみました。
PHPの配列関数はたくさんあるので、とりあえず基本だけです。 (さらに…)

JavaScriptの配列に関するメソッドのまとめ

JavaScriptの配列を操作する「shift」などのメソッドは便利なのですが、元の配列への影響や戻り値がまちまちなので、覚えられません。
一覧にまとめてみました。 (さらに…)

配列のマージ

二つの配列を統合する方法に「マージ」というのがあります。

それぞれの先頭の要素を比べ、小さい方をとります。とった要素は結果用の別の配列に追加します。
とられた配列は先頭の要素が替わります。
またそれぞれの先頭の要素を比べ、小さい方をとります。
これを繰り返します。
いずれどちらかの配列が空になりますので、残った方の配列を結果用の配列にそのまま付け足します。 (さらに…)

JavaScriptで配列をコピーする

JavaScriptで配列をコピーするときは次のような注意が必要です。

a=[10,20,30];
b=a;

配列変数aを配列変数bにコピーしています。
これで配列変数bをaの代わりに使うことができます。

次にpopを使ってaの最後の要素をクリアします。

a.pop();

この場合、bには何も影響しないように思われますが、実行結果は次のようになります。

a=[10,20]
b=[10,20]

bもaと同じく最後の要素がクリアされます。
つまり「b=a」とすると各要素がコピーされるのではなく「bはaを参照する」ということになるのです。
したがって各要素をコピーするためには次のようにします。

a=[10,20,30];
for(i=0;i<a.length;i++){
  b[i]=a[i];
}
a.pop();

実行結果は次の通り。

a=[10,20]
b=[10,20,30]

意図通り、aだけが処理されました。

なお次のような簡単な方法もあります。
sliceを使うと配列を部分的に抜き出すことができます。
第1引数にセットした位置から第2引数にセットした位置の前まで抜き出します。
第1引数に「0」をセットし、第2引数を省略すると、最初から最後までを抜き出しますので、配列の各要素をコピーするのと同じ効果があります。

a=[10,20,30];
b=a.slice(0);
a.pop();

PHPでJSONを使う

PHPでJSONを使う場合について、まとめます。

前提

前提は次の通りとします。
太郎と次郎がいて、それぞれidとnameを持っています。
次郎には子供がいて(春子、夏子)、それぞれnameを持っています。 (さらに…)

JavaScript、二次元配列でソート

JavaScriptで、二次元配列を任意の列でソートする方法です。
数値でソートするものとし、昇順、降順が指定できます。 (さらに…)

新しい記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報