• ベストアンサー
  • 暇なときにでも

Array配列の末尾に追加したい。

MyString = Array("0です","1です","2です") ↑これの後ろに、"3です" を追加したいのですが、 どうしたらいいですか? Perl で言う、Push関数の様なものが欲しいのですが。。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数36747
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • Hk2001
  • ベストアンサー率48% (24/49)

あとで追加する。という事でしょうか? だったら、普通に配列の数を増やして、そこに値を代入すればいいと思います。 手順は  (1)UBound で配列の最大を取得してカウントを1加算する。 (2)求めたカウントで ReDim する。そのとき Preserve を使い配列の値の初期化を止める。 (3)配列に値を代入する。 という具合です。 ヘルプで UBound、ReDim を調べればすぐコーディングできると思います。 できなかったら↓↓参考にしてください。 Private Sub Command1_Click() Dim MyString As Variant Dim lCnt As Long MyString = Array("0です", "1です", "2です") lCnt = UBound(MyString) + 1 ReDim Preserve MyString(lCnt) MyString(lCnt) = "3です" End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お時間を割いて答えて下さり、 ありがとうございます。 やっぱり ReDim Preserve するしかないんでしょうか。 Perl の Push関数は Push(配列名,文字列); という、 あえて配列のサイズを指定する必要のない、 とても簡単なものだったので、 そういう関数があるかなぁ?と思ったのですが。 (T-T)

関連するQ&A

  • array_push関数について

    array_push関数を使って配列に追加していくことはできるのですが、多次元配列に追加する方法がわかりません。 WEBマニュアルを見ても詳しく書かれておらず困っています。 array_push関数で多次元配列に追加していくことはできるのでしょうか? できるのであれば簡単な書式をご伝授ください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • push(@array, {}); について

    いつもお世話になります。 いまperlのプログラムを読んでいるのですが、 push(@array, {});  という記述があり@arrayという配列の最後に値を追加しているというのはわかるのですが、どんな値なのか、つまり{}の意味がわかりません。スペースでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 配列の基本

    perlだと@a = ('a'..'z','A'..'Z','0'..'9','_'); なんですが、PHPで $a = range('a', 'z'); array_push($a, range('A', 'Z'), range('0', '9'), '_'); とやって var_dump($a); で確認すると失敗していることがわかりました。 直してください。

    • ベストアンサー
    • PHP

その他の回答 (1)

  • 回答No.2
  • Hk2001
  • ベストアンサー率48% (24/49)

前に一度そういうの探した事があったんですけど、めぼしいものが見つかりませんでした。あると便利なんですけどね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ReDim で進めてみます。 お手数を取らせまして、申し訳ありません。 ありがとうございました。 また、何かありましたら よろしくお願いいたします。( ̄∇ ̄)

関連するQ&A

  • perlの配列追加について

    perlの配列の扱いについて質問です。 例えば、10個ほどの要素がある配列があるとして新しい要素を配列の任意の場所に追加する方法ってsplice関数を使うのが普通なのでしょうか? 本を参考にsplice関数を使ってみたら任意の場所に上書きのようになってしまいました(単に自分のやり方が悪いだけかもしれませんが)。 perlで簡単に配列の任意の場所へ、上書きではなく追加する方法をどなたか教えてください。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 配列の抽出

    PHPの配列の関数で数行程度でフィルターのような機能は可能なのでしょうか? 以下、サンプルですが血液型がAの新しい配列を作成するには、どのようにしたら良いのでしょうか? また、新しい配列でなく$matrixを血液型がAのみにする方法も知りたいです。 実際の例で示していただけましたら助かります。 <?php // 血液型(blood)がAの人のみの新しい、配列にしたい。 $agent1 = array( "blood"=>"A", "B"=> 80, "W"=> 60, "H"=> 85 ); $agent2 = array( "blood"=>"B", "B"=> 90, "W"=> 62, "H"=> 90 ); $agent3 = array( "blood"=>"O", "B"=> 78, "W"=> 56, "H"=> 80 ); $agent4 = array( "blood"=>"AB", "B"=> 81, "W"=> 59, "H"=> 83 ); $agent5 = array( "blood"=>"A", "B"=> 88, "W"=> 58, "H"=> 84 ); $matrix = array(); array_push($matrix, $agent1); array_push($matrix, $agent2); array_push($matrix, $agent3); array_push($matrix, $agent4); array_push($matrix, $agent5); var_dump($matrix); exit; ?>

    • ベストアンサー
    • PHP
  • C言語の配列をPush(追加)するには

    C言語の配列をPush(追加)するには タイトル通りなのですが、OPENCVにあるcvSeqPushのように 配列の末尾に新たな数値を追加する関数はあるのでしょうか?? できれば、簡単なサンプルコードもしくはそれが掲載されているページを紹介していただくと とても助かります。よろしくお願いします。

  • perlの配列操作について、@array =~ s/AAA//g;を行いたい

    perlの配列から、AAAを削除したい場合、どのようにすればよいでしょうか? 例えば、 @array = ('aAAAa','aa','bAAAa'); とある場合、 @array = ('aa','aa','ba'); としたい場合です。 イメージ的には、 @array =~ s/AAA//g; としたいのですが、うまく動作しません。 ご存知の方教えていただけないでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • C言語で配列の連結について教えてください

    以下のような構造体でmember[]の要素の後にmember2[]の要素を追加して、member[]を返す関数を作りたいのですがやり方がわかりません。よろしくお願いします。 (C++ vectorのpush_back、phpのarray_push()に相当する関数) typedef struct _MEMBER { char *name; int age; char *address; } MEMBER; MEMBER member[] = { "山田", 25, "東京都aaaaa", "木村", 30, "東京都bbbbb", "森田", 24, "東京都ccccc", }; MEMBER member2[] = { "伊藤", 23, "大阪府ddddd", "山野", 31, "大阪府eeeee", };

  • 多次元配列への格納

    よろしくお願いします。 多次元配列に値を格納したいのですが、これまでは、 $test = array ( 'father' => array ('hiroshi', 'toshi'), 'mother' => array ('hanako', 'yoshiko'), ); のように予め書かれてあるデータを使ってきましたが、この度やりたいのはある一つの通常の配列を20ずつ多次元配列に自動的に格納するスクリプトを作りたいと思っています。 $test = array ('hiroshi','toshi','masao',.....);と続く配列を、 $test = array ( 0 => array ('hiroshi',......(20個)), 1 => array (.......), ); と20ぐらいに区切って多次元配列にしたいです。 $test[0]に直接pushしたらWarning: array_push() [function.array-push]: First argument should be an array in..と叱られてしまいました。 どなたかわかる方がいましたらおしえてください。

    • ベストアンサー
    • PHP
  • 配列を返す関数から、一つの要素だけ取り出したい。

    例えば、配列を返す関数、get_array がある時、 その配列の0番目の要素だけが欲しい時、 Perlでは、 $val = get_array[0]; (配列リファレンスを返す場合は、$val = get_array->[0]; ) みたいな感じで書けたと思いますが、 PHPでは、 $val = get_array()[0]; みたいに書けないですよね? 以下のように、二行で書かなければダメですか? $array = get_array(); $val = $array[0];

    • ベストアンサー
    • PHP
  • PHPのarray配列について初心者の質問です。

    サイトを見ながらPHPを勉強しています。 入力チェックとエラー表示(1) - PHP基礎講座 http://www.phppro.jp/school/phpschool/vol6/2 で、 $error_message = array(); のarrayの使い方がよくわかりません。 arrayとは <?php $data = array("1"=>"ああああ","2"=>"ああああ","3"=>"ああああ"); ?> と言うように、()内に配列していく関数ですよね。()内に何もない場合はどういう様な動きになるのか、よくわかりません。このように書くと、()の中に連想配列で、$error_messageが読み込まれていくのでしょうか??? うまく質問も出来ない位の知識ですが、解説お願いします。

    • ベストアンサー
    • PHP
  • Array()で配列の一次元部分と二次元部分に同時に値を代入するには

    class categoryInfo{  var $langName = array(   "app" => array(    "c" => "C&C++",    "java" => "Java",    "vb" => "Visual Basic.NET",(以下略)   ),   "markup" =>array(    "html" => "HTML",    "css" => "CSS"   ),   "web_app" => array(    "javascript" =>"JavaScript",    "php"=>"PHP",    "perl"=>"CGI/Perl"   ),  );  $langName[app] = "アプリケーション開発用言語";  $langName[markup] = "マークアップ言語";  $langName[web_app] = "Webアプリ"; } ・・・という風にしているのですが、当然ながら、最後の $langName[app] = "アプリケーション開発用言語"; などは、既に宣言した変数に値を代入する行為であるため、関数内で行うように、とのエラーメッセージが出力されてしまいます。  コンストラクタで宣言すれば良い話ではあるのですが、600行ほどあるファイルなので、別の場所で宣言すると面倒になってしまいます。  又、後々foreachを使うので、連想配列を用いている以上、Array()を使って順番を定義したいのです。  このArray()の中で、$langName['app']などの一次元部分に値を代入した上、$langName['app']['c']などの二次元の部分にも値を代入する方法はありますでしょうか?

    • 締切済み
    • PHP
  • 「要素数が変動する連想配列」に、新たなキーを指定した上で、配列を追加し

    「要素数が変動する連想配列」に、新たなキーを指定した上で、配列を追加したいのですが、 どうすればよいでしょうか? 元の連想配列$hash1 "ヨーロッパ"=>"スペイン", "南米"=>"ブラジル" 追加したい配列$hash2 [0]=>"東京", [1]=>"名古屋" array_pushしたら、下記のようになりました。 "ヨーロッパ"=>"スペイン", "南米"=>"ブラジル" [0]=> ______[0]=>"東京" ______[1]=>"名古屋" これを、下記のようにするには、どうしたらよいでしょうか? "ヨーロッパ"=>"スペイン", "南米"=>"ブラジル", "アジア"=> ______[0]=>"東京", ______[1]=>"名古屋"

    • ベストアンサー
    • PHP

専門家に質問してみよう